J'ai un script sur une instance EC2 qui démarre à distance une autre instance.
Une fois que cette instance est complètement chargée (démarrage terminé), je veux qu'elle exécute automatiquement un script bash, quelle serait la meilleure façon de le faire?
J'ai besoin que tout soit complètement démarré, fondamentalement le script bash exécute un script de conversion d'image (en utilisant ImageMagick et exécute la commande "wget" plusieurs fois)
Actuellement, le script se trouve ici:
/home/root/beginProcess.sh
Et je peux le démarrer manuellement en exécutant
bash beginProcess.sh
RHEL-6.2-Démarreur-EBS-i386
Il y a aussi un volume EBS attaché à cela, si cela aide, merci!
la source
/etc/rc.local
fonctionne à merveille, acclamationsSi vous utilisez une AMI sur laquelle le
cloud-init
package est installé (comme Amazon Linux ou Ubuntu), vous pouvez simplement passer le script bash (qui commence par #!) En tant que fichier de données utilisateur et il s'exécutera automatiquement à la fin de la processus de démarrage.Par exemple, cela pourrait être aussi simple que:
Voici l'article où j'ai présenté le concept de script de données utilisateur, désormais disponible dans les principales AMI EC2 comme Amazon Linux et Ubuntu: http://alestic.com/2009/06/ec2-user-data-scripts
Malheureusement, il semble que vous souhaitiez utiliser un RHEL AMI. J'ai exécuté une copie de cela et je n'ai trouvé aucune référence à cloud-init ou à l'exécution de scripts de données utilisateur au premier démarrage, ni fait un test du même travail.
Je ne dis pas que vous devriez changer les distributions Linux juste pour cela, mais Amazon Linux est basé sur RHEL, donc cela pourrait fonctionner pour vous.
Voici un article que j'ai écrit qui pourrait vous aider à déboguer votre script de données utilisateur s'il ne fonctionne pas la première fois: http://alestic.com/2010/12/ec2-user-data-output
la source