Comment relancer cloud-init sans redémarrer
j'utilise openstack pour créer une VM en utilisant la commande 'nova boot'. Mon image est cloud-init activé. Je passe un script -- user-data qui est un format shell bash pour cloud-init à exécuter pendant le démarrage de VM. Tout cela se produit avec succès. Maintenant, mon cas d'utilisation est de relancer cloud-init pour exécuter le même script de données utilisateur sans redémarrer la VM. J'ai vu les options /usr/bin/cloud-init et ils parlent d'exécuter des modules spécifiques mais rien n'est capable de le faire exécuter le même script de données utilisateur. Comment atteindre cet objectif ? Toute aide serait appréciée.
4 réponses
pour que cloud-init se réinitialise, vous devez exécuter rm -rf /var/lib/cloud/instances
.
puis relire le cloud-init start
et il lancera à nouveau le processus complet de script de démarrage.
puisque cela continue à apparaître dans les résultats de recherche, ce qui fonctionne pour moi:
- Supprimer les sémaphores dans
/var/lib/cloud/instances/i-xxxxxxx/sem
. Cloud-init ne redémarrera pas si ces fichiers sont présents. - Modifier
/var/lib/cloud/instances/i-xxxxxxxx/scripts/part-001
. C'est votre script de données utilisateur. Exécuter le module user scripts de cloud-init. Ceci ne va pas re-télécharger les données de l'utilisateur mais exécuter le script déjà téléchargé (et maintenant modifié) à partir de step 2.
sudo /usr/bin/cloud-init single -n cc_scripts_user
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
les commandes ont été mises à jour donc pour relancer vous devez clean
la configuration existant:
sudo cloud-init clean
puis relancez le en utilisant le init
la directive
sudo cloud-init init
attention: des choses comme les clés de l'hôte ssh peuvent être régénérées.