Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)

  • État Nouveau
  • Pourcentage achevé
    0%
  • Type Anomalie
  • Catégorie Services locaux → VM
  • Assignée à Personne
  • Système d'exploitation Freebox Server V7 (Delta)
  • Sévérité Basse
  • Priorité Très Basse
  • Basée sur la version 4.7.5
  • Due pour la version Non décidée
  • Échéance Non décidée
  • Votes
  • Privée
Concerne le projet: Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)
Ouverte par _fvt - 17/04/2023
Dernière modification par _fvt - 17/04/2023

FS#37969 - Cloud-Init Network Configuration not applied

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.

Chargement...

Activer les raccourcis clavier

Liste des tâches

Détails de la tâche

Édition de la tâche