Update 2018-07-17
Proxmox 5.2 hat eine Möglichkeit geschaffen, Templates über die GUI zu verwalten. Wie das geht, habe ich in meinem Artikel Proxmox 5.2 Container Template erstellen beschrieben.
Seit einigen Wochen nutze ich Proxmox für mein Homelab anstatt ESXi. Proxmox bietet eine Gesamtlösung aus Linux LXC Containern, Virtualisierung mithilfe von KVM und unterstützt ZFS als Dateisystem direkt im Kernel (ZoL - ZFS on Linux). Der Großteil meiner Systeme sind linuxbasiert und können somit in LXC Container gepackt werden und direkt auf die Hardware zugreifen.
Ein Vorteil sind z.B. LXC Templates. Templates sind vorkonfigurierte Grundsysteme, z.B. der eigene SSH Key ist schon drin, Benutzer sind angelegt, Grundsoftware ist schon installiert und vieles mehr...
Die Templates kann man auf unterschiedliche Art und Weise erstellen, entweder mit dem Debian Appliance Builder (DAB), von Hand, oder man nimmt natürlich eines der in Proxmox integrierten Templates. Ich wollte einfach mal wissen, wie man Container von Hand erstellen kann:
- LXC Container mit integriertem Template - das wird die Basis für das eigene Template sein -erstellen. Aktuell bevorzuge ich das Ubuntu 16.04 Template
- Container starten
- Container betreten
Entweder durch die KVM Konsole oder per SSH auf dem Proxmox Host pct enter [ContainerID] - Alles einstellen, was man möchte, z.B. eigene bashrc, User, SSH Keys, Applikationen installieren...
- Container aufräumen
apt clean apt autoclean apt autoremove rm /etc/resolv.conf rm /etc/hostname
- Container verlassen
- In der Proxmox Webgui alle Netzwerkinterfaces des Containers entfernen
- Über die Webgui ein Backup vom Container erstellen
Mode: Stop
Compression: Gzip
Die Compression muss Gzip sein weil die Proxmox Webgui das Template später sonst nicht anzeigt - Per SSH auf dem Proxmox Host in den allgemeinen Container Backupordner wechseln
Standardmäßig /var/lib/vz/dump/
In dem Ordner liegt jetzt das Backup als .tar.gz mit .log File - Das .tar.gz File muss in den richtigen Ordner für Container Templates geschoben werden
Standardmäßig /var/lib/vz/template/cache/[Templatename].tar.gz
Der Templatename kann frei vergeben werden. Was hier eingetragen wird, wird später in der Webgui angezeigt. Ich benenne es immer nach dem Schema [distribution-version_templatedatum_architecture].tar.gz
Also z.B. ubuntu-16.04-standard_2017-05-17_amd64.tar.gz
Und wie macht man nachträglich Änderungen am eigenen Template? Einfach den Template Container starten und alle Schritte, mit Ausnahme des ersten, der Reihe nach wiederholen.
Aktuell bevorzuge ich diese Methode um Templates zu erstellen. Bestimmt kann der DAB noch mal ein bisschen mehr. Habe mich damit aber noch nicht genug auseinandergesetzt.
Ich muss hier aber ganz klar sagen, dass dieser Weg nicht der offiziell Unterstützte ist. Der offizielle Weg geht über den DAB! Ich empfinde diesen Weg aktuell nur einfacher.