Cómo ejecutar cloud-init manualmente?

Estoy escribiendo una plantilla de CloudFormation y estoy tratando de depurar los datos de usuario de la secuencia de comandos que aportar en la plantilla. ¿Cómo puedo ejecutar el cloud-init manualmente y hacer que realizar las mismas acciones que realiza a la hora de iniciar una nueva instancia?

InformationsquelleAutor Fluffy | 2014-04-18

4 Kommentare

  1. 39

    Usted puede simplemente ejecutar como este:

    /usr/bin/cloud-init -d init
    

    Esto va en la nube de inicialización de la instalación con la inicial de los módulos. (La opción-d es para depurar) Si desea ejecutar todos los módulos que tiene que ejecutar:

    /usr/bin/cloud-init -d modules
    

    Tenga en cuenta que la segunda vez que ejecute estos no me sirve de mucho ya que ya se ha ejecutado en el momento de arranque. A la fuerza para que se ejecute después de que el tiempo de arranque puede ejecutar desde la línea de comandos:

    ( cd /var/lib/cloud/&& sudo rm -rf * )
    

    En versiones anteriores el equivalente de cloud-init init es:

    /usr/bin/cloud-init start
    

    Usted también puede encontrar esta pregunta útil, aunque se aplica a las versiones anteriores de cloud-init: ¿Cómo puedo hacer cloud-init scripts de inicio que se ejecute cada vez que mi instancia de EC2 botas?

    La documentación de la nube init aquí sólo da ejemplos. Pero no explica las opciones de línea de comandos o de cada uno de los módulos, así que tienes que jugar con diferentes valores en la configuración para obtener los resultados deseados. Por supuesto, también puede mirar el código.

    • Sí lo hice, ¿por qué ?
    • Bueno, yo estoy haciendo cloud-init: error: invalid choice: 'start' (choose from 'query', 'init', 'modules', 'single')
    • Parece ser que tiene una versión diferente. Posiblemente el más reciente de Ubuntu. Ejecutar: cloud-init init
    • No cloud-init init sólo tiene que ejecutar sólo los módulos de cloud_init_modules, omitiendo el resto de la carrera?
    • Así que se debe ejecutar y configuración inicial y todo en cloud_init_modules pero lo que pasa es que al ejecutar cloud-init init el segundo tiempo no se ejecuta como se arranca por primera vez la máquina (porque ya se ha ejecutado) A la fuerza para ejecutar todo lo que la solución es hacer algo como esto: ( cd /var/lib/cloud/ && sudo rm -rf * ) desde la línea de comandos. Si desea ejecutar el resto de módulos en su configuración también puede ejecutar cloud-init -d modules
    • añade más detalles a la respuesta. Espero te sirva de ayuda.
    • También puede quitar los semáforos en /var/lib/cloud/instances/i-xxxxxxx/sem, a continuación, editar /var/lib/cloud/instances/i-xxxxx/scripts/part-001 a su gusto y ejecutarlo a través de sudo /usr/bin/cloud-init -d single -n cc_scripts_user.
    • Ninguno de tus ejemplos re-corrió el /etc/cloud/nube.cfg.d la carpeta de secuencias de comandos para mí. Sin embargo, la limpieza de la /var/lib/nube/ carpeta y reiniciar la instancia, funcionó!

  2. 4

    Kudus a @Rico, y también, si desea ejecutar un módulo único – ya sea para probar o porque su distribución no permiten a un módulo por defecto (hi Exactos!), usted puede

    /usr/bin/cloud-init -d single -n <module-name>
    

    Por ejemplo cuando mi distro no ejecutar write_files por defecto (al igual que un montón de viejos distribuciones), yo uso esta en la parte superior de runcmd:

    runcmd:
     - /usr/bin/cloud-init -d single -n write-files
    

    [Sé que no es realmente una respuesta a la OP, pero cuando se busca resolver mi problema esta cuestión fue uno de los primeros resultados, así que me imagino que otras personas puedan encontrar esto útil]

  3. 4

    En la mayoría de distribuciones de Linux (incluyendo CentOS y Ubuntu), puede reiniciar el cloud-init servicio mediante systemctl:

    systemctl restart cloud-init
    

    Y, a continuación, compruebe la salida de la revista para ver los resultados:

    journalctl -f -u cloud-init
    
  4. 3
    rm -f /var/log/cloud-init.log \
    && rm -Rf /var/lib/cloud/* \
    && cloud-init -d init \
    && cloud-init -d modules --mode final
    
    • Esto podría ser «mejor» que lo que el OP pedido?? Es decir, cloud-init no la elimina usted tiene, por tanto, su solución no «realizar las mismas acciones» no? Si has añadido un par de palabras de comentario, a continuación, todo estaría claro!

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea