Ansible的vmware_guest模块无法为已创建VM应用customization_spec怎么办?
问题根因
vmware_guest模块默认仅在虚拟机克隆创建阶段自动触发customization_spec应用,对已存在的虚拟机,模块默认不会主动执行定制操作,因此单独调用时模块判定无配置变更返回OK状态,不会触发vCenter侧的定制任务。
解决方法
在定制已存在虚拟机的playbook中添加force_customization: yes参数,该参数的作用是强制对现有虚拟机触发定制流程,不受模块默认变更判定逻辑限制。
同时建议补充虚拟机状态控制与证书校验配置,确保定制流程可以正常执行,修正后的配置示例如下:
- name: Set VM customization vmware_guest: hostname: {{ hostname }} username: {{ username }} password: {{ password }} validate_certs: False name: ansible_test_content_library state: poweredon customization_spec: {{ customization }} force_customization: yes wait_for_customization: yes
额外注意事项
- 需使用community.vmware集合版本≥1.10.0,低版本对
force_customization参数的支持存在缺陷 - 定制前确认虚拟机已安装对应版本的VMware Tools,Windows系统需允许Sysprep运行,Linux系统需提前安装perl依赖
- 定制流程会自动重启虚拟机,需提前确认业务侧允许停机操作
内容的提问来源于stack exchange,提问作者Jimmy Fort
相关产品推荐
相关产品推荐

