Soluzione 1:
Suggerirei semplicemente di usare l'opzione user-data per ec2-run-instances
. Ti consente di fornire uno script di qualche tipo alla VM che verrà eseguito al primo avvio. Se stai usando ubuntu o debian, puoi usare cloud-init, che mette un po' di rifinitura nel processo. Se usi cloud-init, puoi usare [runcmd]
sezione del file di configurazione per specificare comandi arbitrari da eseguire dopo l'avvio.
Grazie all'utente SF Eric Hammond per la pagina dei dati utente. Dai un'occhiata al suo sito:contiene molte informazioni su AWS.
Modifica:dopo aver riletto, non è chiaro se si desidera eseguire un comando all'avvio iniziale o ad ogni avvio. Le istruzioni di cui sopra si applicano solo all'avvio iniziale. Se vuoi eseguire un comando a ogni avvio, hai un paio di opzioni:puoi eseguire un comando tramite @reboot
direttiva cron, o in alternativa puoi aggiungere lo script a /etc/rc.local
, che verrà eseguito a ogni avvio del sistema.
Soluzione 2:
Se stavi utilizzando un'AMI con cloud-init
pacchetto installato (come Amazon Linux o Ubuntu), puoi semplicemente passare lo script bash (che inizia con #!) come file di dati utente e verrebbe eseguito automaticamente alla fine del processo di avvio.
Ad esempio, potrebbe essere semplice come:
ec2-run-instances \
--user-data-file /home/root/beginProcess.sh \
--key $USER \
ami-XXXXXXXX
Ecco l'articolo in cui ho introdotto il concetto di script dati utente, ora disponibile nelle principali AMI EC2 come Amazon Linux e Ubuntu:http://alestic.com/2009/06/ec2-user-data-scripts
Sfortunatamente, sembra che tu voglia utilizzare un'AMI RHEL. Ne ho eseguito una copia e non sono riuscito a trovare alcun riferimento a cloud-init o all'esecuzione di script di dati utente al primo avvio, né un test dello stesso lavoro ha funzionato.
Non sto dicendo che dovresti cambiare distribuzione Linux solo per questo, ma Amazon Linux è basato su RHEL, quindi potrebbe funzionare per te.
Ecco un articolo che ho scritto che potrebbe aiutarti a eseguire il debug dello script dei dati utente se non funziona la prima volta:http://alestic.com/2010/12/ec2-user-data-output