J'ai une instance EC2 exécutant un AMI basé sur l'AMI Linux Amazon. Comme tous ces AMIs, il prend en charge le cloud-init système pour l'exécution des scripts de démarrage basé sur les Données de l'Utilisateur passé en tous les cas. Dans ce cas particulier, mes Données d'Utilisateur d'entrée se trouve être un fichier include que les sources de plusieurs autres scripts de démarrage:
#include
http://s3.amazonaws.com/path/to/script/1
http://s3.amazonaws.com/path/to/script/2
La première fois que je démarre mon exemple, le cloud-init script de démarrage s'exécute correctement. Cependant, si je fais un soft reboot de l'instance (en exécutant sudo shutdown -r now
, par exemple), l'instance revient sans exécuter le script de démarrage de la deuxième fois autour. Si je vais dans les journaux système, je peux voir:
Running cloud-init user-scripts
user-scripts already ran once-per-instance
[ OK ]
Ce n'est pas ce que je veux -- je vois l'utilité d'avoir des scripts de démarrage qui fonctionnent uniquement une fois par exemple la durée de vie, mais dans mon cas, ces doit s'exécuter chaque fois que l'instance démarre, comme les scripts de démarrage.
Je me rends compte qu'une solution possible est d'manuellement mes scripts s'insérer dans rc.local
après l'exécution de la première fois. Cela semble fastidieux, cependant, depuis le cloud-init et rc.d environnements sont subtilement différent, et je suis maintenant à déboguer des scripts lors du premier lancement et de tous les lancements séparément.
Personne ne sait comment je peux cloud-init de toujours exécuter mes scripts? Certes cela sonne comme quelque chose que les concepteurs de cloud-init aurait considéré.