|
37969 | Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K) | 17/04/2023 | Anomalie | VM | Nouveau | Cloud-Init Network Configuration not applied |
Description de la tâche
Bonjour,
J’utilise cloud-init pour configurer ma VM (debian). Cette VM lance ensuite un docker-compose (fichier copié via cloud-init, docker et docker compose installés via cloud-init, et compose lancé via cloud-init, avec redirection d’une caméra USB vers homebridge-cameraui, …).
En résumé, quand je supprime et recréé la VM, je n’ai qu’à coller le cloud-init et tout repart, sauf pour la partie Network:
Dans ce compose il y a une partie pihole, utilisé comme DNS et DHCP.
J’aimerais avoir le DHCP de la freebox désactivé et l’assignement d’une IP à cette VM via cloud-init. Le seul souci dans cette automatisation est que la partie Network de cloud-init ne fonctionne pas, je suis donc obligé de laisser le DHCP de la freebox activé avec une seule IP dans le range et une réservation MAC sur cette IP pour la VM, ce qui n’est pas très pratique (l’adresse MAC de la VM n’est pas affichée dans l’UI freebox donc je dois la démarrer une première fois avant de mettre en place la réservation, en prenant garde a ne pas avoir activé le DHCP freebox avant d’avoir mis la réservation sinon l’adresse est prise par un autre bail d’un équipement connecté, …).
Est-ce que quelqu’un a déjà réussi a faire fonctionner le module Network de cloud-init avec une VM ? Est-ce du a une limitation des VM freebox ?
Exemple de cloud-init (tout fonctionne sauf la partie Network):
#cloud-config
cloud_final_modules:
- [network, always]
- [apt-configure, always] # force apt sources updates
- [package-update-upgrade-install, always]
- [write-files, always]
- [write-files-deferred, always]
- [runcmd, always]
- [scripts-user, always] # runcmd only create the user script but not run it, so you need this too in order to have runcmd run again
- [users-groups, always]
- [ssh, always]
network:
version: 2
ethernets:
switchports:
match: {name: "enp*"}
bonds:
bond0:
interfaces: [switchports]
mode: balance-alb
dhcp4: false
dhcp6: false
addresses: [192.168.10.2/24]
gateway4: 192.168.10.1
nameservers:
search: [home.lan, lan, .]
addresses: [192.168.10.2, 192.168.10.1]
ssh_authorized_keys:
- ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX home@192.168.10.2
system_info:
default_user:
name: home
groups: [docker]
package_update: true
package_upgrade: true
packages: [docker, docker-compose, vim, htop, ucommon-utils, v4l2loopback-dkms, v4l-utils, alsa-utils, ffmpeg]
package_reboot_if_required: true
write_files:
- encoding: "gzip+base64"
content: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
owner: home:root
permissions: '0440'
path: /home/home/compose-home.yaml
runcmd:
- [modprobe, v4l2loopback, "video_nr=101"] # Create virtual device, only one for the moment as v4l2loopback devices can still handle mutliple readers
- [pdetach, /usr/bin/ffmpeg, -nostdin, -loglevel, error, -f, v4l2, -input_format, mjpeg, -video_size, "1280x720", -framerate, 20, -i, /dev/video0, -f, v4l2, -codec, copy, /dev/video101] # clone video0 to video101 so that it can be read by multiple processes in parallel. Using pdetach to run it in backgroups as had issues to escape ampersand
- [/usr/bin/systemctl, start, docker] # needed if freshly installed
- [/usr/bin/docker-compose, -f, /home/home/compose-home.yaml, up, -d, --force-recreate, --remove-orphans] # force recreate containers to avoid issues and always have a clean startup
Le schema de config est bien valide testé avec
cloud-init schema --system
.
La freebox et donc la VM sont redémarrés une fois par semaine, d’où le lancement de modules cloud-init en “always” pour maintenir le tout a jour automatiquement (et simplifier un changement de configuration type clé SSH ou autre). La VM est recréée seulement en cas de Mise a jour de l’OS majeure.
Merci d’avance pour votre aide, Francis.
|