start script log ec2 data commands bootstrap aws user-data cloud-init

user data - script - cloud-init: ¿Cuál es el orden de ejecución de las directivas cloud-config?



ec2 user data log file (1)

¿Cuál es el orden de las directivas en la sección de configuración de nube de un objeto de datos de usuario de inicio de nube? Esto es importante para evitar condiciones de tipo de carrera.

Sé que bootcmd se ejecuta antes y antes de runcmd, pero ¿hay una buena lista del orden de todos los métodos?


Desde https://git.launchpad.net/cloud-init/tree/config/cloud.cfg (gracias a garbelini)

# The modules that run in the ''init'' stage cloud_init_modules: - migrator - ubuntu-init-switch - seed_random - bootcmd - write-files - growpart - resizefs - set_hostname - update_hostname - update_etc_hosts - ca-certs - rsyslog - users-groups - ssh # The modules that run in the ''config'' stage cloud_config_modules: # Emit the cloud config ready event # this can be used by upstart jobs for ''start on cloud-config''. - emit_upstart - disk_setup - mounts - ssh-import-id - locale - set-passwords - snappy - grub-dpkg - apt-pipelining - apt-configure - package-update-upgrade-install - fan - landscape - timezone - lxd - puppet - chef - salt-minion - mcollective - disable-ec2-metadata - runcmd - byobu # The modules that run in the ''final'' stage cloud_final_modules: - rightscale_userdata - scripts-vendor - scripts-per-once - scripts-per-boot - scripts-per-instance - scripts-user - ssh-authkey-fingerprints - keys-to-console - phone-home - final-message - power-state-change

Adicionalmente:

Se está fusionando la configuración "El orden es el siguiente: - los archivos de configuración cli anulan los archivos de configuración del entorno que anulan las configuraciones de instancia que anulan las configuraciones de fuente de datos que anulan la configuración base que anula la configuración predeterminada". (ver Changelog)

Dentro de los directorios de scripts generados individualmente, los scripts se ejecutan en el orden dado por la función "ordenada ()" de python.

NOTA: aunque esto era correcto en el momento de la respuesta, al mirar el repositorio (hasta septiembre de 2017) mencionado anteriormente, ahora hay un archivo de plantilla cloud.cfg.tmpl que tiene configuraciones ligeramente diferentes para diferentes distribuciones.

# The modules that run in the ''init'' stage cloud_init_modules: - migrator - seed_random - bootcmd - write-files - growpart - resizefs {% if variant not in ["freebsd"] %} - disk_setup - mounts {% endif %} - set_hostname - update_hostname {% if variant not in ["freebsd"] %} - update_etc_hosts - ca-certs - rsyslog {% endif %} - users-groups - ssh # The modules that run in the ''config'' stage cloud_config_modules: {% if variant in ["ubuntu", "unknown", "debian"] %} # Emit the cloud config ready event # this can be used by upstart jobs for ''start on cloud-config''. - emit_upstart - snap_config {% endif %} - ssh-import-id - locale - set-passwords {% if variant in ["rhel", "fedora"] %} - spacewalk - yum-add-repo {% endif %} {% if variant in ["ubuntu", "unknown", "debian"] %} - grub-dpkg - apt-pipelining - apt-configure {% endif %} {% if variant not in ["freebsd"] %} - ntp {% endif %} - timezone - disable-ec2-metadata - runcmd {% if variant in ["ubuntu", "unknown", "debian"] %} - byobu {% endif %} # The modules that run in the ''final'' stage cloud_final_modules: {% if variant in ["ubuntu", "unknown", "debian"] %} - snappy {% endif %} - package-update-upgrade-install {% if variant in ["ubuntu", "unknown", "debian"] %} - fan - landscape - lxd {% endif %} {% if variant not in ["freebsd"] %} - puppet - chef - salt-minion - mcollective {% endif %} - rightscale_userdata - scripts-vendor - scripts-per-once - scripts-per-boot - scripts-per-instance - scripts-user - ssh-authkey-fingerprints - keys-to-console - phone-home - final-message - power-state-change