2 votes

Combinez l'auto-installation de cloud-init avec d'autres modules cloud-init

Je tente de provisionner une VM avec cloud-init et l'image live du serveur. (Je n'utilise pas l'image cloud, pour des raisons infrastructurelles je dois installer à partir d'ISOs)

Cependant, chaque fois que j'essaie de combiner autoinstall avec par exemple write_files, la partie write_files ne semble pas réussir.

Voici l'installation d'Ubuntu:

#cloud-config
autoinstall:
  version: 1
  identity:
    hostname: boxy-001
    password: "$1$k46kl1..."
    username: alice
  storage:
    layout:
      name: lvm
  ssh:
    install-server: true
    authorized-keys: 
      - "ecdsa-sha2-nistp256 AAAAE2...."

write_files:              
- content: |              
    cloud_init_has_run    
  path: /cloud_init_flag  

Mais le fichier n'est pas écrit à /cloud_init_flag.

Des modules sont-ils manquants? Le cloud-config est-il incomplet sur les ISOs Server live?

Éditer le fichier est écrit, mais il est écrit dans l'environnement d'installation! Il serait mieux d'utiliser la clé autoinstall.user-data pour fournir les user-data pour le système cible.

3voto

Andrew Lowther Points 3661

comment puis-je faire en sorte que cloud-init s'exécute sur le système installé en combinaison avec autoinstall?

Il y a une clé de configuration user-data pour le fichier autoinstall.

Par exemple, si vous voulez que votre configuration write_files soit utilisée par cloud-init sur le système installé, alors cet extrait pourrait être inclus dans le fichier autoinstall.

#cloud-config
autoinstall:
  version: 1
  user-data:
    write_files:
    - content: |
        cloud_init_has_run
      path: /cloud_init_flag
...

Comment ça marche

  • Pendant l'installation, subiquity créera une configuration pour cloud-init à /target/var/lib/cloud/seed/nocloud-net/user-data.
  • Lors du premier démarrage du système installé, cloud-init utilisera ce fichier de configuration pour effectuer certaines tâches d'installation. Notamment, c'est ainsi que le premier utilisateur est créé.
  • Si une section user-data est incluse dans le fichier autoinstall, alors subiquity va fusionner la section user-data dans le fichier généré /target/var/lib/cloud/seed/nocloud-net/user-data.

En utilisant l'extrait ci-dessus, la configuration fusionnée a donné ce contenu de fichier.

#cloud-config
growpart: {mode: 'off'}
locale: en_US.UTF-8
preserve_hostname: true
resize_rootfs: false
...
write_files:
- {content: 'cloud_init_has_run

    ', path: /cloud_init_flag}

Lors du premier démarrage, cloud-init a créé le fichier /cloud_init_flag avec le contenu configuré.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X