Después de que cloud-init ejecuta un script de datos de usuario en el primer inicio de una instancia EC2, se presume que se escribe un archivo de estado para que cloud-init no vuelva a ejecutar el script en los reinicios posteriores. Hay casos en los que me gustaría eliminar este archivo de estado para que el script de datos del usuario vuelva a ejecutarse. ¿Dónde está?
fuente
curl
para el servicio de metadatos para obtener la identificación de la instancia actual es innecesario porque/var/lib/cloud/instance
ya es un enlace simbólico a la instancia actual en/var/lib/cloud/instances
. :-)Puede poner su script en /etc/rc.local, que ejecutará el script en cada reinicio.
fuente
/etc/rc.local
no tiene nada que ver con los datos del usuario EC2.También puede configurar sus datos de usuario para que se vuelvan a ejecutar en cada arranque, en lugar de eliminar el archivo de estado.
cloud_final_modules
Debe usar su script de datos de usuario para volver a ejecutar el script de datos de usuario y para eso debe personalizar uderdata para tener múltiples archivos en los datos de usuario. El archivo de datos de usuario de ejemplo sería como:Esto hará que el script de datos de usuario se ejecute en el último paso de cada proceso de arranque. Aquí solo
bin/echo "Hello World" >> /tmp/userdata-test.txt
se ejecutará una sola línea , reemplácela con su script de shell que debe ejecutarse cada vez que se inicia una máquina.fuente