第 6 章 在虚拟机上重新运行 cloud-init
当您需要对使用 cloud-init 服务配置的虚拟机(VM)进行额外配置时,您可以重新运行 cloud-init 进程。
如果您重新运行 cloud-init 进程,可能会丢失数据并覆盖凭证,如 SSH 密钥和密码。避免在生产环境中重新运行 cloud-init。
6.1. 在 cloud-init 运行后修改从 KVM 客户机镜像创建的虚拟机 复制链接链接已复制到粘贴板!
要在初始启动后更改虚拟机(VM)设置,请修改 cloud-init 配置并重新运行 cloud-init。
先决条件
- 您已创建了一个 红帽帐户。
您已选择以下选项之一:
-
您已从红帽客户门户网站下载了一个 Red Hat ISO 镜像,并创建了 KVM 客户机镜像,该镜像预安装了
cloud-init,并设置cloud-init在虚拟机上自动运行。 -
您已通过从红帽客户门户网站下载 Red Hat ISO 镜像并在其上安装
cloud-init来创建自定义镜像。 -
您已创建了一个自定义的 Red Hat Enterprise Linux (RHEL)镜像,该镜像可使用 RHEL 镜像构建器 为公共云平台做好准备。这些镜像格式预装了
cloud-init:Amazon Machine Image (AMI)、Virtual Hard Drive (VHD) 和 QEMU copy-on-write (QCOW2)。
-
您已从红帽客户门户网站下载了一个 Red Hat ISO 镜像,并创建了 KVM 客户机镜像,该镜像预安装了
-
您已在重新运行
cloud-init前清理了虚拟机数据目录,以应用新的配置。
流程
- 登录到您的虚拟机。
添加或更改指令,例如修改
/etc/cloud目录中的cloud.cfg文件,或在/etc/cloud/cloud.cfg.d目录中添加指令。# vi /etc/cloud/cloud.cfg运行
cloud-init clean命令以清理目录,以便cloud-init可以再次运行。# cloud-init clean以
root用户身份运行以下命令来清理虚拟机数据:# rm -Rf /var/lib/cloud/instances/# rm -Rf /var/lib/cloud/instance# rm -Rf /var/lib/cloud/data/注意您可以将清理的镜像保存为模板镜像,并将该镜像用于多个虚拟机。新虚拟机将使用更新的配置来运行
cloud-init。-
重新运行
cloud-init或重启虚拟机,以实现您所做的配置更改。有关重新运行cloud-init的详情,请参阅 重新运行 cloud-init。
验证
验证是否应用了
cloud-init配置:# cloud-init status该命令返回
status: done。注意您还可以通过检查
/var/log/cloud-init.log文件来验证cloud-init配置。