Proxmox LXC Container Templates mit DAB erstellen

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/dabtemplates/debian10.0minimal) 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.

Schreibe einen Kommentar