DAB ist der Debian Appliance Builder von Proxmox. Er vereinfacht und automatisiert die Erstellung von eigenen LXC Container Templates.
Wird unter Proxmox installiert. (Sollte aber nicht auf einer produktiven Maschine mit laufenden Containern eingesetzt werden.)
- Proxmox Host (schnellste Lösung)
- Proxmox als VM unter Proxmox (ideale Lösung)
- Proxmox als VM unter vmware (auch möglich)
Das Paket dab installieren.
$ apt install -y dab
Build-Umgebung für ein minimales Debian 10 anlegen.
$ mkdir -p /opt/dab-templates/debian-10-minimal $ cd /opt/dab-templates/debian-10-minimal
Die benötigte dab.conf muss in diesem Ordner erstellt werden. (Hier findet man verschieden Templates)
Suite: buster CacheDir: ../cache #Source: http://ftp.debian.org/debian SUITE main contrib #Source: http://ftp.debian.org/debian SUITE-updates main contrib #Source: http://security.debian.org SUITE/updates main contrib Architecture: amd64 Name: debian-10.0-minimal Version: 20190614-1 Section: system Maintainer: me <me@example.com> Infopage: https://pve.proxmox.com/wiki/Debian_Appliance_Builder Description: Debian 10.0 Buster (minimal)
Die verfügbaren Paketlisten herunterladen.
$ dab init
Den Erstellungsprozess starten.
$ dab bootstrap
Das entgültige Template Paket erstellen.
$ dab finalize
Fertig.
$ /opt/dab-templates/debian-10.0-minimal# ls -l -rw-r--r-- 1 root root 145 Jun 14 14:25 config -rw-r--r-- 1 root root 487 Jun 14 14:23 dab.conf -rw-r--r-- 1 root root 125919985 Jun 14 15:03 debian-10.0-minimal_20190614-1_amd64.tar.gz drwxr-xr-x 2 root root 4096 Jun 14 14:25 info -rw-r--r-- 1 root root 349505 Jun 14 15:03 logfile drwxr-xr-x 21 root root 4096 Jun 14 15:03 rootfs -rw-r--r-- 1 root root 37 Jun 14 14:25 .veid
Die Datei jetzt einfach in das Proxmox Template Verzeichnis nach /var/lib/vz/template/cache/ kopieren.
$ scp debian-10.0-minimal_20190614-1_amd64.tar.gz root@proxmox-01:/var/lib/vz/templates/cache/
Nach getaner Arbeit noch ein bischen aufräumen.
$ dab clean # das Arbeitsverzeichnis säubern $ dab dist-clean # löscht auch das Cache Verzeichnis mit den heruntergeladenen Paketen (ca. 135MB)
DAB mit Makefile automatisieren
Die einzelnen Schritte lassen sich mit dem Befehl make automatisieren.
In einem Rutsch Software installieren, Einstellungen anpassen, Dateien kopieren, etc.
Dazu wird in dem entsprechenden Ordner des Templates (/opt/dab–templates/debian–10.0–minimal) zusätzlich die Datei Makefile erstellt.
BASEDIR:=$(shell dab basedir) all: info/init_ok dab bootstrap --minimal echo "Europe/Berlin" > ${BASEDIR}/etc/timezone dab exec cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime dab exec dpkg-reconfigure -f noninteractive tzdata dab install htop dab install lsof dab install zip dab install lsb-release dab install sudo cp ../files/bashrc ${BASEDIR}/root/.bashrc cp ../files/motd ${BASEDIR}/etc/motd dab finalize info/init_ok: dab.conf dab init touch $@ .PHONY: clean clean: dab clean rm -f *~ .PHONY: dist-clean dist-clean: dab dist-clean rm -f *~
Die Build-Umgebung wird noch um den Ordner files erweitert.
(Hier liegen die angepassten Dateien, die in das Template mit übernommen werden sollen.)
$ mkdir /opt/dab-templates/files
Ist das Makefile den Bedürfnissen angepasst, wird der Erstellungsprozess gestartet.
$ make
Auch hier sollte nach getaner Arbeit wieder aufgeräumt werden.
$ make clean
Eigene Container Templates zu erstellen ist also gar nicht so schwer.