Solución 1:
Sugeriría simplemente usar la opción de datos de usuario para ec2-run-instances
. Le permite dar un script de algún tipo a la máquina virtual que se ejecutará en el primer arranque. Si está usando ubuntu o debian, puede usar cloud-init, que le da un buen toque al proceso. Si usa cloud-init, puede usar el [runcmd]
sección del archivo de configuración para especificar comandos arbitrarios para ejecutar después del arranque.
Gracias al usuario de SF Eric Hammond por la página de datos de usuario. Visite su sitio:tiene una gran cantidad de información sobre AWS.
Editar:después de volver a leer, no está claro si desea ejecutar un comando en el arranque inicial o en cada arranque. Las instrucciones anteriores solo se aplican al arranque inicial. Si desea ejecutar un comando en cada inicio, tiene un par de opciones:puede ejecutar un comando a través de @reboot
directiva cron, o alternativamente puede agregar el script a /etc/rc.local
, que se ejecutará cada vez que se inicie el sistema.
Solución 2:
Si estaba usando una AMI que tenía el cloud-init
paquete instalado (como Amazon Linux o Ubuntu), entonces podría simplemente 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 arranque.
Por ejemplo, podría ser tan simple como:
ec2-run-instances \
--user-data-file /home/root/beginProcess.sh \
--key $USER \
ami-XXXXXXXX
Aquí está el artículo en el que 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
Lamentablemente, parece que desea utilizar una AMI de RHEL. Ejecuté una copia de eso y no pude encontrar ninguna referencia a cloud-init o ejecutar secuencias de comandos 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 podría funcionar para usted.
Aquí hay un artículo que escribí que podría ayudarlo a depurar su secuencia de comandos de datos de usuario si no funciona la primera vez:http://alestic.com/2010/12/ec2-user-data-output