GNU/Linux >> Tutoriels Linux >  >> Linux

Exécuter un script bash après le démarrage de l'instance EC2

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


Linux
  1. Comment exécuter une commande Linux bash dans un script PERL ?

  2. Ssh - Comment exécuter un script immédiatement après la connexion via Ssh ?

  3. Shell Script, lu sur la même ligne après avoir renvoyé un message

  4. Exécuter le script bash en tant que démon

  5. Autorisation refusée avec bash.sh pour exécuter cron

Comment exécuter un script bash {7 méthodes}

Comment exécuter un script au démarrage dans Debian 11

Comment exécuter un script bash

Exécutez le script avec rc.local :le script fonctionne, mais pas au démarrage

Comment exécuter à plusieurs reprises un script bash toutes les N secondes ?

Exécuter le script bash après la connexion