11.8. 使用 VMware Cloud-init 和 Userdata 模板进行置备
您可以将 VMware 与 Cloud-init
和 Userdata
模板一起使用,将用户数据插入到新虚拟机中,进行进一步的 VMware 自定义,并使 VMware 托管的虚拟机调用给 Satellite。
您可以使用相同的步骤在 Satellite 中设置 VMware 计算资源,并对工作流进行一些修改。
图 11.1. VMware cloud-init 置备概述
当您在 Satellite 中为 VMware 置备设置计算资源和镜像时,会发生以下置备事件序列:
- 用户使用 Satellite Web UI、API 或 hammer 置备一个或多个虚拟机
- Satellite 调用 VMware vCenter 来克隆虚拟机模板
-
Satellite
用户数据
置备模板添加自定义身份信息 -
置备完成后,
Cloud-init
置备模板指示虚拟机在cloud-init
运行时调用 Capsule - VMware vCenter 将模板克隆到虚拟机
- VMware vCenter 对虚拟机的身份应用自定义,包括主机名、IP 和 DNS
-
虚拟机构建
cloud-init
被调用,并在端口80
上调用后端 Satellite,然后重定向到443
先决条件
-
配置端口和防火墙设置,以打开任何必要的连接。由于
cloud-init
服务,虚拟机始终调用回 Satellite,即使您将虚拟机注册到 Capsule。有关 端口和防火墙要求 的更多信息,请参阅安装 Capsule 服务器 中的 在连接的网络环境中安装 Satellite 服务器 中的 端口和 防火墙要求。 - 如果要使用 Capsule 服务器而不是 Satellite 服务器,请确保已相应地配置了 Capsule 服务器。如需更多信息,请参阅安装 Capsule 服务器 中的 为主机注册和置备配置 Capsule。
将 Userdata
和 Cloud-init
模板与操作系统关联
- 在 Satellite Web UI 中,进入到 Hosts > Templates > Provisioning Templates。
- 搜索 CloudInit 默认模板,再单击其名称。
- 单击 关联 选项卡。
- 选择模板应用到的所有操作系统,然后单击 Submit。
- 对 UserData open-vm-tools 模板重复上述步骤。
- 进入 Hosts > Provisioning Setup > Operating Systems。
- 选择您要用于置备的操作系统。
- 点 Templates 选项卡。
- 从 Cloud-init 模板列表中,选择 CloudInit default。
- 从 User data template 列表中,选择 UserData open-vm-tools。
- 点 Submit 保存更改。
准备镜像以使用 cloud-init 模板
要准备镜像,您必须首先配置虚拟机上所需的设置,然后可以保存为要在 Satellite 中使用的镜像。
要使用
模板进行调配,您必须配置虚拟机,以便安装、启用并配置为返回到 Satellite 服务器。
cloud-init
为了安全起见,您必须安装 CA 证书以使用 HTTPS 进行所有通信。此流程包括清理虚拟机的步骤,以便不需要的信息传送到用于置备的镜像中。
如果您使用 cloud-init
镜像,您仍然必须按照以下步骤启用 cloud-init
以便与 Satellite 通信,因为禁用了 cloud-init
。
流程
在用于创建镜像的虚拟机上,安装
cloud-init
、open-vm-tools
和perl
软件包:yum -y install cloud-init open-vm-tools perl
# yum -y install cloud-init open-vm-tools perl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过
cloud-init
禁用网络配置:cat << EOM > /etc/cloud/cloud.cfg.d/01_network.cfg network: config: disabled EOM
# cat << EOM > /etc/cloud/cloud.cfg.d/01_network.cfg network: config: disabled EOM
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置
cloud-init
以从 Satellite 获取数据:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要通过 Capsule 服务器置备,请在
seedfrom
选项中使用 Capsule 服务器的 URL,如https:// Capsule.example.com:9090/userdata/
。配置要在
cloud-init
中使用的模块:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为镜像启用 CA 证书:
update-ca-trust enable
# update-ca-trust enable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从 Satellite 服务器下载
katello-server-ca.crt
文件:wget -O /etc/pki/ca-trust/source/anchors/cloud-init-ca.crt https://satellite.example.com/pub/katello-server-ca.crt
# wget -O /etc/pki/ca-trust/source/anchors/cloud-init-ca.crt https://satellite.example.com/pub/katello-server-ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要通过胶囊服务器调配,请从 Capsule 服务器下载 文件,如
https:// Capsule.example.com/pub/katello-server-ca.crt
。更新证书的记录:
update-ca-trust extract
# update-ca-trust extract
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 清理镜像:
systemctl stop rsyslog systemctl stop auditd package-cleanup --oldkernels --count=1 yum clean all
# systemctl stop rsyslog # systemctl stop auditd # package-cleanup --oldkernels --count=1 # yum clean all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 减少日志空间、删除旧的日志和截断日志:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除
udev
硬件规则:rm -f /etc/udev/rules.d/70*
# rm -f /etc/udev/rules.d/70*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除与现有网络配置相关的
ifcfg
脚本:rm -f /etc/sysconfig/network-scripts/ifcfg-ens* rm -f /etc/sysconfig/network-scripts/ifcfg-eth*
# rm -f /etc/sysconfig/network-scripts/ifcfg-ens* # rm -f /etc/sysconfig/network-scripts/ifcfg-eth*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 SSH 主机密钥:
rm -f /etc/ssh/ssh_host_*
# rm -f /etc/ssh/ssh_host_*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 root 用户的 SSH 历史记录:
rm -rf ~root/.ssh/known_hosts
# rm -rf ~root/.ssh/known_hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 root 用户的 shell 历史记录:
rm -f ~root/.bash_history unset HISTFILE
# rm -f ~root/.bash_history # unset HISTFILE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 从此虚拟机创建镜像。
- 将您的镜像添加到 Satellite。