Lösung 1:
Ich würde vorschlagen, einfach die Benutzerdatenoption für ec2-run-instances
zu verwenden . Damit können Sie der VM ein Skript geben, das beim ersten Start ausgeführt wird. Wenn Sie Ubuntu oder Debian verwenden, können Sie cloud-init verwenden, was dem Prozess etwas Feinschliff verleiht. Wenn Sie cloud-init verwenden, können Sie den [runcmd]
verwenden Abschnitt der Konfigurationsdatei, um beliebige Befehle anzugeben, die nach dem Booten ausgeführt werden sollen.
Danke an SF-Benutzer Eric Hammond für die Benutzerdatenseite. Sehen Sie sich seine Website an – sie enthält eine Fülle von Informationen zu AWS.
Bearbeiten:Nach dem erneuten Lesen ist nicht klar, ob Sie einen Befehl beim ersten Start oder bei jedem Start ausführen wollten. Die obigen Anweisungen gelten nur für den ersten Start. Wenn Sie bei jedem Start einen Befehl ausführen möchten, haben Sie mehrere Möglichkeiten - Sie können einen Befehl über @reboot
ausführen cron Direktive, oder alternativ können Sie das Skript zu /etc/rc.local
hinzufügen , die bei jedem Systemstart ausgeführt wird.
Lösung 2:
Wenn Sie ein AMI mit dem cloud-init
verwendet haben Paket installiert (wie Amazon Linux oder Ubuntu), dann könnten Sie einfach das Bash-Skript (das mit #! beginnt) als Benutzerdatendatei übergeben und es würde am Ende des Bootvorgangs automatisch ausgeführt.
Zum Beispiel könnte es so einfach sein wie:
ec2-run-instances \
--user-data-file /home/root/beginProcess.sh \
--key $USER \
ami-XXXXXXXX
Hier ist der Artikel, in dem ich das Benutzerdaten-Skriptkonzept vorgestellt habe, das jetzt in wichtigen EC2-AMIs wie Amazon Linux und Ubuntu verfügbar ist:http://alestic.com/2009/06/ec2-user-data-scripts
Leider sieht es so aus, als wollten Sie ein RHEL-AMI verwenden. Ich habe eine Kopie davon ausgeführt und konnte keine Verweise auf Cloud-Init oder das Ausführen von Benutzerdatenskripten beim ersten Start finden, noch hat ein Test derselben Arbeit funktioniert.
Ich sage nicht, dass Sie die Linux-Distributionen nur dafür wechseln sollten, aber Amazon Linux basiert auf RHEL, also könnte das für Sie funktionieren.
Hier ist ein Artikel, den ich geschrieben habe, der Ihnen helfen könnte, Ihr Benutzerdaten-Skript zu debuggen, wenn es beim ersten Mal nicht funktioniert:http://alestic.com/2010/12/ec2-user-data-output