Tengo un script en una instancia de EC2 que inicia remotamente otra instancia.
Una vez que esta instancia se haya cargado completamente (finalizado el arranque), quiero que ejecute automáticamente un script bash, ¿cuál sería la mejor manera de hacerlo?
Necesito que todo esté completamente iniciado, básicamente el script bash ejecuta un script de conversión de imagen (usando ImageMagick y ejecuta el comando "wget" varias veces)
Actualmente, el script se encuentra aquí:
/home/root/beginProcess.sh
Y puedo iniciarlo manualmente ejecutando
bash beginProcess.sh
RHEL-6.2-Starter-EBS-i386
También hay un volumen EBS adjunto a esto, si eso ayuda, ¡Gracias!
fuente
/etc/rc.local
funciona de maravilla, saludosSi estaba utilizando una AMI que tenía el
cloud-init
paquete instalado (como Amazon Linux o Ubuntu), simplemente podría pasar el script bash (que comienza con #!) Como el archivo de datos del usuario y se ejecutaría automáticamente al final del proceso de arranquePor ejemplo, podría ser tan simple como:
Aquí está el artículo donde presenté el concepto de script de datos de usuario, ahora disponible en las principales AMI de EC2 como Amazon Linux y Ubuntu: http://alestic.com/2009/06/ec2-user-data-scripts
Desafortunadamente, parece que quieres usar un RHEL AMI. Ejecuté una copia de eso y no pude encontrar ninguna referencia a cloud-init o ejecutar scripts de datos de usuario en el primer arranque, ni hice una prueba del mismo trabajo.
No estoy diciendo que deba cambiar las distribuciones de Linux solo por esto, pero Amazon Linux se basa en RHEL, por lo que eso podría funcionar para usted.
Aquí hay un artículo que escribí que podría ayudarlo a depurar su script de datos de usuario si no funciona la primera vez: http://alestic.com/2010/12/ec2-user-data-output
fuente