Eseguire uno script bash dopo gli stili di istanza EC2

Ho uno script su un'istanza EC2 che remota un'altra istanza.

Una volta che questa istanza è stata caricata (avviamento finito), voglio che esegua automaticamente uno script bash, qual è il modo migliore per farlo?

Ho bisogno di tutto per essere completamente avviato, fondamentalmente lo script bash gestisce uno script di conversione di image (utilizzando ImageMagick ed esegue il command "wget" alcune volte)

Attualmente, lo script si trova qui:

/home/root/beginProcess.sh

E posso avviarlo manualmente eseguendo

bash beginProcess.sh

RHEL-6.2-Starter-EBS-i386

Inoltre c'è un volume EBS collegato a questo, se questo aiuta, grazie!

  • Servizi Windows Server 2008 x86 per Unix SDK (SUA) RSH
  • kpartx verbose info: cosa significa?
  • È OK impostare il `sudo` passwordless su un server cloud?
  • il descrittore di file di socket (1063) è più grande di FD_SETSIZE (1024), probabilmente è necessario ribuild Apache con un FD_SETSIZE più grande
  • C'è un meccanismo in Unix (o Linux) per fermare un dump di core in progress?
  • Quale linux x86 keystore hardware?
  • perché il mio file system XFS è corrotto? analisi della causa principale
  • Configurare le opzioni Il server MySQL è stato compilato con?
  • 2 Solutions collect form web for “Eseguire uno script bash dopo gli stili di istanza EC2”

    Vorrei suggerire semplicemente l' utilizzo dell'opzione utente-dati a ec2-run-instances . Permette di dare uno script di qualche tipo al VM che verrà eseguito al primo avvio. Se si utilizza ubuntu o debian, è ansible utilizzare cloud-init , che mette un po 'di liscio sul process. Se si utilizza cloud-init, è ansible utilizzare la sezione [runcmd] del file di configuration per specificare comandi arbitrari da eseguire dopo l'avvio.

    Grazie all'utente SF Eric Hammond per la pagina utente-dati. Controlla il suo sito – ha una grande quantità di informazioni su AWS.

    Modifica: dopo la lettura, non è chiaro se si desidera eseguire un command all'avvio iniziale oa each avvio. Le istruzioni di cui sopra si applicano solo all'avvio iniziale. Se si desidera eseguire un command su each avvio, si dispone di una coppia opzioni – è ansible eseguire un command tramite la @reboot cron directive o in alternativa è ansible aggiungere lo script a /etc/rc.local , che verrà eseguito each volta il sistema si avvia.

    Se si stava utilizzando un AMI che aveva installato il pacchetto di cloud-init (come Amazon Linux o Ubuntu), è sufficiente passare lo script bash (che inizia con #!) Come file di dati utente e si eseguirà automaticamente fine del process 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 degli utenti, che è ora disponibile nei maggiori AMI EC2 come Amazon Linux e Ubuntu: http://alestic.com/2009/06/ec2-user-data-scripts

    Purtroppo, sembra che tu voglia utilizzare un RHEL AMI. Ho eseguito una copia di questo e non ho potuto trovare alcun riferimento a cloud-init o eseguire script utente-dati al primo avvio, né ha fatto un test dello stesso lavoro.

    Non sto dicendo che dovresti cambiare Linux distro solo per questo, ma Amazon Linux è basato su RHEL, in modo che potrebbe funzionare per te.

    Ecco un articolo che ho scritto che potrebbe aiutare a eseguire il debug del tuo script di dati utente se non funziona la prima volta: http://alestic.com/2010/12/ec2-user-data-output

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.