openstack cloud-init

openstack - Cómo volver a ejecutar cloud-init sin reiniciar



cloud config (4)

Como esto sigue apareciendo en los resultados de búsqueda, lo que funciona para mí:

  1. Elimine los semáforos en /var/lib/cloud/instances/i-xxxxxxx/sem . Cloud-init no se volverá a ejecutar si estos archivos están presentes.
  2. Edite /var/lib/cloud/instances/i-xxxxxxxx/scripts/part-001 . Este es su script de datos de usuario.
  3. Ejecute únicamente el módulo de scripts de usuario de cloud-init. Esto no volverá a descargar los datos del usuario, pero ejecutará la secuencia de comandos ya descargada (y ahora, modificada) del paso 2.

    sudo /usr/bin/cloud-init single -n cc_scripts_user

Estoy usando openstack para crear una máquina virtual con el comando ''nova boot''. Mi imagen es cloud-init habilitado. Paso un script --user-data que es un formato de shell bash para que cloud-init se ejecute durante el tiempo de arranque de la máquina virtual. Todo esto sucede con éxito. Ahora mi caso de uso es volver a ejecutar cloud-init para ejecutar el mismo script de datos de usuario sin reiniciar la VM. Vi las opciones de / usr / bin / cloud-init y hablan de ejecutar módulos específicos, pero nada es capaz de hacer que ejecute el mismo script de datos de usuario. ¿Cómo se puede lograr esto? Cualquier ayuda sería apreciada.


Los comandos se han actualizado, por lo que para volver a ejecutar debe clean la configuración existente:

sudo cloud-init clean

Luego vuelva a ejecutarlo usando la directiva init :

sudo cloud-init init

Cuidado: cosas como las claves de host ssh pueden regenerarse.


Para ejecutar el módulo de paquetes de la parte cloud-config de cloud-init, puede ejecutar

# cloud-init-cfg all config

Para ejecutar el módulo runcmd de la parte cloud-config de cloud-init, puede ejecutar

# cloud-init-cfg all final


Para que se reinicie cloud-init, debe ejecutar rm -rf /var/lib/cloud/instances .

Luego, vuelva a ejecutar el cloud-init start y volverá a ejecutar el proceso completo de la secuencia de comandos de arranque.