web-dev-qa-db-fra.com

Que signifie «les modifications ne persisteront pas sur une instance» signifie en réalité dans 50-cloud-init.yaml

Dans Ubuntu récent, netplan est le moyen par défaut de configurer les adaptateurs réseau. Je veux une adresse IP statique sur l'un des miens, et il y a quelques guides sur la façon de le faire. Certains pointez-vous vers l'édition 50-cloud-init.yaml. Mais ce fichier contient un avertissement inquiétant:

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}

Une réponse sur askubuntu fait référence à cela et l'utilisateur doit-il le faire . (Notez que le rendu est défini sur networkd.)

Quelle approche est la bonne? Fonctionnent-ils tous les deux?

Le plus déroutant, que signifie "persister dans une instance"? Les paramètres persistent très bien lors d'un redémarrage. Quand devrais-je m'attendre à perdre des paramètres dans 50-cloud-init.yaml?

5
aggieNick02

L'avertissement "pas sur une instance" signifie que si vous entrez des modifications dans le fichier yaml dans une image qui doit encore effectuer sa première exécution cloud-init (au démarrage), les modifications seront écrasées par cloud-init.

Cloud-init est utilisé pour configurer des choses au premier démarrage. À cette fin, il modifie les fichiers lors du premier démarrage (et éventuellement même après). Le fichier 50 ... yaml en fait partie.

Une fois que cloud-init a exécuté une première fois sur une image, il ne réexécutera plus ces modifications.

L'avertissement conseille donc de ne pas modifier le fichier sur les images système brutes et inutilisées pour les conteneurs et les machines virtuelles et similaires.

Soit dit en passant, une commande "cloud-init clean" ramènerait le statut de cloud-init à "jamais exécuté auparavant" et régénérerait également le fichier 50 .... yaml également.

5
Lismatro

Les modifications apportées à /etc/netplan/50-cloud-init.yaml sont persistantes lors des redémarrages, mais pas si vous sauvegardez une instance et la restaurez sur une nouvelle (même si votre sauvegarde a été effectuée après un redémarrage).

Je suppose que la solution décrite à Convertir/etc/network/interfaces en netplan le rend persistant entre les instances mais j'ai compris que je devrais mettre à jour l'adresse MAC sur chaque instance de toute façon ...

J'ai donc fini d'écrire un petit script qui:

  • ajoute ma configuration à la fin de /etc/netplan/50-cloud-init.yaml
  • exécute Sudo netplan apply

Je lance juste ce script une fois après chaque création d'instance et c'est tout ...

0
max