Créer une image Cloud de Debian UEFI pour QEMU, avec Packer, Bento et Salt
Sommaire
Prérequis
- Serveur Salt configuré
- Grain "roles:packer" déployé sur les Salt minion concernés (exemple : https://gitlab.kartzone.info/kartzone/kartzone-demo/-/blob/main/salt.sls#L26)
- Formule packer-formula déployée sur votre Salt Master
- Pillars packer.sls configurés sur votre Salt Master (exemple ici https://gitlab.kartzone.info/kartzone/kartzone-demo/-/blob/main/packer.sls)
- Formule libvirt-formula déployée sur votre Salt Master
- Pillars libvirt.sls configurés sur votre Salt Master (exemple ici https://gitlab.kartzone.info/kartzone/kartzone-demo/-/blob/main/libvirt.sls)
Procédure
Depuis le serveur Salt, installez QEMU et libvirt sur le Salt Minion cible
1sudo salt -G 'roles:packer' state.apply libvirt.server,libvirt.qemu,libvirt.extra
Installer Packer sur le Salt Minion cible
1sudo salt -G 'roles:packer' state.apply packer
Configurez le projet Bento et votre dépôt Packer via Salt
1sudo salt -G 'roles.packer' state.apply packer.templates
Configurez le répertoire de création des images Packer
1sudo mkdir -p /srv/packer/build 2sudo chown $USER /srv/packer/build
Sur le serveur Packer, lancez la création de l'image Cloud de Debian
1cd && packer build -var-file="/srv/packer/templates/kartzone-demo/packer-variables-debian11-cloud.json" --only=qemu -except=vagrant /srv/packer/templates/bento/packer_templates/debian/debian-11.*-amd64.json
Dépannage Packer
Pour résoudre un incident, vous pouvez exécuter Packer en mode debug :
1cd && PACKER_LOG=1 packer build -var-file="/srv/packer/templates/kartzone-demo/packer-variables-debian11-cloud.json" --only=qemu -except=vagrant /srv/packer/templates/bento/packer_templates/debian/debian-11.*-amd64.json
Vous avez aussi la possibilité d'afficher la console de la machine virtuelle en éditant la variable "headless" :
1cd && PACKER_LOG=1 packer build -var headless=false -var-file="/srv/packer/templates/kartzone-demo/packer-variables-debian11-cloud.json" --only=qemu -except=vagrant /srv/packer/templates/bento/packer_templates/debian/debian-11.*-amd64.json
Annexes
- Site du projet Bento : http://chef.github.io/bento/
- Site du projet Salt : https://docs.saltproject.io/en/latest/
- Site du projet Packer : https://www.packer.io
- Site du projet QEMU : https://www.qemu.org/
- Site du projet Debian : https://www.debian.org
- Site du projet libvirt : https://libvirt.org/
- Site du projet cloud-init : https://cloud-init.io/