Une fois que cloud-init a exécuté un script de données utilisateur au premier démarrage d'une instance EC2, un fichier d'état est vraisemblablement écrit afin que cloud-init ne réexécute pas le script lors des redémarrages ultérieurs. Il y a des cas où j'aimerais supprimer ce fichier d'état afin que le script de données utilisateur soit exécuté à nouveau. Où est-ce?
19
curl
pour le service de métadonnées pour obtenir l'ID d'instance en cours est inutile car il/var/lib/cloud/instance
existe déjà un lien symbolique vers l'instance en cours sous/var/lib/cloud/instances
. :-)Vous pouvez placer votre script dans /etc/rc.local, qui exécutera le script à chaque redémarrage.
la source
/etc/rc.local
n'a rien à voir avec les données utilisateur EC2.Vous pouvez également configurer vos données utilisateur pour les réexécuter à chaque démarrage, au lieu de supprimer le fichier d'état. Vous devez utiliser
cloud_final_modules
dans votre script userdata pour réexécuter le script userdata et pour cela vous devez personnaliser uderdata pour avoir plusieurs fichiers dans userdata. Un exemple de fichier de données utilisateur serait comme:Cela rendra le script userdata à exécuter à la dernière étape de chaque processus de démarrage. Ici, une seule ligne
bin/echo "Hello World" >> /tmp/userdata-test.txt
à exécuter, remplacez-la par votre script shell qui doit être exécuté à chaque démarrage d'une machine.la source