Dokumentation
Übersicht
Ziel ist es, eine einfache Möglichkeit zu bieten, wie ein Appliance angepasst und erweitert werden kann.
Beispiel-Tweaks
- Optimierung einer Konfigurationsdatei
- Hinzufügen von Datendateien
- Hinzufügen eines Pakets
- Erstellen eines brandneuen Appliance unter Verwendung eines generischen Appliance wie Core, LAMP, Rails usw.
Designziele
- Gut konzipierter Mechanismus (einfach, generisch und leistungsstark)
- Sehr einfach technisch, um Eintrittsbarrieren zu reduzieren
- Ermutigen Sie Entwickler, ihre Patches einfach zu veröffentlichen
- Integrieren Sie gute Entwicklungen vorgelagert zu TurnKey Appliances
- Etablieren Sie ein Open-Source-Ökosystem von Patches
- Befriedigen Sie den langen Schwanz der besonderen Bedürfnisse
Nutzung
Anwenden eines Patches auf ein Appliance ISO-Bild (das gepatchte Bild wird image-patched.iso genannt)
tklpatch image.iso patch.tar.gz
Anwenden eines Patches zum Ändern einer installierten Appliance-Instanz (aus dem Inneren des Appliance):
Gotcha: Das laufende System muss entsprechend dem erwarteten tklpatch-Zustand konfiguriert sein, es sei denn, der Patch verwaltet Diskrepanzen (z. B. laufende Server, Passwörter usw.).
tklpatch-apply / patch.tar.gz
Hallo Weltbeispiel
- Laden Sie ein beliebiges TurnKey Appliance herunter (z. B. TurnKey Core)
- Generieren und Anwenden von Beispiel-Patch:
tklpatch-example helloworld tklpatch path/to/turnkey-core.iso helloworld - Optimieren und passen Sie die Beispiel-Patch-Vorlage an Ihre Bedürfnisse an.
Befehlssyntax
TKLpatch ist in der Unix-Tradition als modulare Sammlung einfacher Subskriptionen konzipiert. Der tklpatch-Befehl selbst ist nur das oberste Skript auf hoher Ebene, das folgendes aufruft:
1) tklpatch-extract-iso
Disassemble the ISO to extract its contents
1) cdroot: ISO filesystem - contains bootloader and compressed rootfs
2) rootfs: uncompressed root filesystem
2) tklpatch-apply
Apply the patch to the root filesystem.
Patch structure:
patch-dir/
debs/ # custom debian packages (installed with dpkg -i *.deb)
overlay/ # overlay applied to root filesystem
conf # configuration script to execute in chroot (rootfs)
3) tklpatch-prepare-cdroot
Prepare cdroot for ISO creation. This mainly compresses the extracted
root filesystem.
4) tklpatch-geniso
Generate an ISO from the cdroot.
Anatomie eines Patches
Ein Patch ist ein Verzeichnis (das als gzipped tarball verpackt werden kann), das eine der folgenden Dateien und Verzeichnisse enthalten kann:
patch/
debs/ # custom debian packages (installed with dpkg -i *.deb)
overlay/ # overlay applied to root filesystem
conf # configuration script to execute in chroot (rootfs)
Zusätzlich wird Patch/ kann einen Patches/Ordner enthalten, der verschachtelte Patches enthalten kann (ausgepackt oder als gzipped Tarball gebündelt). Verschachtelte Patches werden in alphanumerischer Reihenfolge ihrer Namen installiert Vormals auf den Patch, der sie enthält (Patch Patching aktivieren).
patch1/
patches/
patch2/
patch3.tar.gz
patch4.tar.gz
patches/
patch5/
Verschachtelte Patches erleichtern das modulare Design, da Änderungen nicht gebündelt werden müssen.