J'utilise openstack pour créer un VM en utilisant la commande 'nova boot'. Mon image est activée pour le cloud. Je passe un script --user-data qui est un format Shell bash pour le cloud- init à exécuter pendant VM temps de démarrage. Tout cela se passe avec succès. Maintenant mon cas d'utilisation est de réexécuter cloud-init pour exécuter le même script de données utilisateur sans redémarrer la VM. I vu/usr/bin/cloud-init et ils parlent de l'exécution de modules spécifiques mais rien ne peut lui faire exécuter le même script de données utilisateur. Comment cela peut-il être fait? Toute aide serait appréciée.
Pour que cloud-init se réinitialise, vous devez exécuter rm -rf /var/lib/cloud/instances
.
Exécutez ensuite à nouveau le cloud-init start
et il exécutera à nouveau le processus de script de démarrage complet.
Comme cela continue d'apparaître dans les résultats de recherche, ce qui fonctionne pour moi:
/var/lib/cloud/instances/i-xxxxxxx/sem
. Cloud-init ne se réexécutera pas si ces fichiers sont présents./var/lib/cloud/instances/i-xxxxxxxx/scripts/part-001
. Ceci est votre script de données utilisateur.Exécutez niquement le module de scripts utilisateur de cloud-init. Cela ne téléchargera pas à nouveau les données utilisateur mais exécutera le script déjà téléchargé (et maintenant modifié) de l'étape 2.
Sudo /usr/bin/cloud-init single -n cc_scripts_user
Les commandes ont été mises à jour donc pour réexécuter vous devez clean
sortir la configuration existante:
Sudo cloud-init clean
Réexécutez-le ensuite à l'aide de la directive init
:
Sudo cloud-init init
Attention: des choses comme les clés d'hôte ssh peuvent être régénérées.
Pour exécuter le module packages de la partie cloud-config de cloud-init, vous pouvez exécuter
# cloud-init-cfg all config
Pour exécuter le module runcmd de la partie cloud-config de cloud-init, vous pouvez exécuter
# cloud-init-cfg all final