Solution 1 :
Je suggérerais simplement d'utiliser l'option user-data pour ec2-run-instances
. Il vous permet de donner un script quelconque à la machine virtuelle qui sera exécuté au premier démarrage. Si vous utilisez ubuntu ou debian, vous pouvez utiliser cloud-init, qui met un peu de finition sur le processus. Si vous utilisez cloud-init, vous pouvez utiliser le [runcmd]
section du fichier de configuration pour spécifier des commandes arbitraires à exécuter après le démarrage.
Merci à l'utilisateur SF Eric Hammond pour la page de données utilisateur. Consultez son site - il contient une mine d'informations sur AWS.
Edit :après relecture, il n'est pas clair si vous vouliez exécuter une commande au démarrage initial ou à chaque démarrage. Les instructions ci-dessus ne s'appliquent qu'au démarrage initial. Si vous souhaitez exécuter une commande à chaque démarrage, vous avez plusieurs options - vous pouvez exécuter une commande via le @reboot
cron directive, ou bien vous pouvez ajouter le script à /etc/rc.local
, qui sera exécuté à chaque démarrage du système.
Solution 2 :
Si vous utilisiez une AMI qui avait le cloud-init
package installé (comme Amazon Linux ou Ubuntu), vous pouvez simplement passer le script bash (qui commence par # !) comme fichier de données utilisateur et il s'exécutera automatiquement à la fin du processus de démarrage.
Par exemple, cela pourrait être aussi simple que :
ec2-run-instances \
--user-data-file /home/root/beginProcess.sh \
--key $USER \
ami-XXXXXXXX
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 une AMI RHEL. J'en ai exécuté une copie 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 testé le même travail.
Je ne dis pas que vous devriez changer de distribution Linux juste pour cela, mais Amazon Linux est basé sur RHEL, donc cela pourrait fonctionner pour vous.
Voici un article que j'ai écrit et 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