rm -rf /var/lib/cloud
/usr/bin/cloud-init init --local
/usr/bin/cloud-init init
/usr/bin/cloud-init modules --mode=config
/usr/bin/cloud-init modules --mode=final
初始化类型 | 默认行为 | 禁用方式 | 注意事项 |
hostname 的初始化 | 实例首次启动时,Cloud-Init 会根据 vendor_data.json 中的 hostname 信息来设置实例的 hostname。 | 当您使用自定义镜像创建或重装实例时,如需保持自定义镜像内部自定义的 hostname 设置,则请在制作自定义镜像之前将 /etc/cloud/cloud.cfg 中的 preserve_hostname 设置为 true,并删除 - scripts-user 这行配置。 | 若 preserve_hostname 为 true 且 - scripts-user 配置被禁用,则实例内部的 /var/lib/cloud/instance/scripts/runcmd 初始化脚本将不会被执行,并会同时影响其他子项的初始化(主要涉及:腾讯云可观测平台、云安全的安装、软件源的设置)。同时,在您创建子机时,自定义脚本也不会被执行。 |
/etc/hosts 的初始化 | 实例首次启动时,Cloud-Init 会默认将 /etc/hosts 初始化为 127.0.0.1 $hostname 。 | 当您使用自定义镜像创建或重装实例时,您想保持自定义镜像内部自定义的 /etc/hosts 设置,可以在制作自定义镜像之前在 /etc/cloud/cloud.cfg 里面删除 - scripts-user 与 - ['update_etc_hosts', 'once-per-instance'] 这两行配置。 | 如果您禁用了 - scripts-user 这行配置,实例内部的 /var/lib/cloud/instance/scripts/runcmd 初始化脚本将不会被执行,并会同时影响其他子项的初始化(主要涉及:腾讯云可观测平台、云安全的安装、软件源的设置)。同时,在您创建子机时,自定义脚本也不会被执行。每当子机重启时,部分存量机器 /etc/hosts 的设置都会被覆盖。解决方案请参见 如何有效的修改 Linux 实例的 etc hosts 配置。 |
DNS 的初始化(非 DHCP 场景) | 实例首次启动时,Cloud-Init 会根据 vendor_data.json 中的 nameservers 信息来设置实例的 DNS。 | 当您使用自定义镜像创建或重装实例时,您想保持自定义镜像内部自定义的 DNS 设置,可以在制作自定义镜像之前在 /etc/cloud/cloud.cfg 里面删除 - resolv_conf 与 unverified_modules: ['resolv_conf'] 两行配置。 | 无。 |
软件源的初始化 | 实例首次启动时,Cloud-Init 会根据 vendor_data.json 中的 write_files 信息来设置实例的软件源。 | 当您使用自定义镜像创建或重装实例时,您想保持自定义镜像内部自定义的软件源设置,可以在制作自定义镜像之前在 /etc/cloud/cloud.cfg 里面删除 - write-files 这行配置。 | 无。 |
NTP 的初始化 | 实例首次启动时,Cloud-Init 会根据 vendor_data.json 中的 NTP Server 信息来设置实例的 NTP 服务器配置,并拉起 NTP Service。 | 当您使用自定义镜像创建或重装实例时,您想保持自定义镜像内部自定义的 NTP 设置,可以在制作自定义镜像之前在 /etc/cloud/cloud.cfg 里面删除 - ntp 这行配置。 | 无。 |
密码的初始化 | 实例首次启动时,Cloud-Init 会根据 vendor_data.json 中的 chpasswd 信息来设置实例的默认账号密码。 | 当您使用自定义镜像创建或重装实例时,您想保持自定义镜像内部自定义的默认账号密码,可以在制作自定义镜像之前在 /etc/cloud/cloud.cfg 里面删除 - set-passwords 这行配置。 | 无。 |
密钥绑定 | 实例首次启动时,Cloud-Init 会根据 vendor_data.json 中的 ssh_authorized_keys 信息来设置实例的默认账号密钥。 | 当您使用自定义镜像创建或重装实例时,您想保持自定义镜像内部自定义的密钥,可以在制作自定义镜像之前在 /etc/cloud/cloud.cfg 里面删除 - users-groups 这行配置。 | 如果您通过手工的方式在实例内部自行绑定密钥,在通过控制台下发密钥绑定的操作时,系统会将此密钥覆盖。 |
网络初始化(非 DHCP 场景) | 实例首次启动时,Cloud-Init 会根据 network_data.json 中的信息来设置实例的 IP、GATEWAY、MASK 等。 | 当您使用自定义镜像创建或重装实例时,您想保持自定义镜像内部自定义的网络信息,可以在制作自定义镜像之前在 /etc/cloud/cloud.cfg 里面增加 network: {config: disabled} 这行配置。 | 无。 |
Traceback (most recent call last):File "/usr/bin/cloud-init", line 5, in********raise DistributionNotFound(req)pkg_resources.DistributionNotFound: pyyaml
/usr/bin/python
与 /bin/python
这两个软链接指向 Python2)。当用户业务有需要时,可能会在实例内部把 Python 的默认解释器改为 Python3(即修改 /usr/bin/python
与 /bin/python
这两个软链接,使其指向 Python3)。由于兼容性问题,导致在开机启动执行 Cloud-Init 时报错。/usr/bin/cloud-init
文件中指定的 Python 解释器,将 #!/usr/bin/python
或 #!/bin/python
修改为 #!/usr/bin/python2.7
。/var/log/cloud-init-output.log
C:\\Program Files\\Cloudbase Solutions\\Cloudbase-Init\\log\\cloudbase-init.log
本页内容是否解决了您的问题?