cloud-init用户数据对象的cloud-config部分中的指令顺序是什么。这对于避免种族类型的情况很重要。
我知道bootcmd在runcmd之前提前运行,但有没有一个很好的所有方法顺序列表?
答案 0 :(得分:22)
来自https://git.launchpad.net/cloud-init/tree/config/cloud.cfg(感谢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
此外:
有配置合并“订单如下: - cli配置文件覆盖环境配置文件 它覆盖覆盖数据源的实例配置 覆盖覆盖覆盖的基本配置的配置 默认配置。“(参见更改日志)
在单个生成的脚本目录中,脚本按照python“sorted()”builtin
给出的顺序运行注意:虽然这在回答时是正确的,但查看上面提到的存储库(截至2017年9月),现在有一个cloud.cfg.tmpl模板文件,其中不同发行版的设置略有不同
# 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