You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible Tower如何将vSphere动态清单传入Playbook变量

实现方法

你不需要手动把动态生成的清单内容传入变量文件,AWX/Tower启动作业时会自动完成lab_vm vSphere动态清单的同步,将所有匹配虚拟机的主机信息、关联属性自动注入Ansible运行时变量,按以下步骤调整配置即可:

1. 调整AWX作业模板配置

  • 作业模板的「清单」项直接选择已创建的lab_vm动态清单
  • 如果不需要对清单内全量虚拟机打快照,可以提前在动态清单里配置分组规则,或者在作业模板的「限制」项里填写目标主机/组匹配规则
  • 原来配置的VMWARE_HOST/VMWARE_USER/VMWARE_PASSWORD凭据直接绑定到作业模板即可,不需要修改现有环境变量lookup逻辑

2. 修正变量文件vars.yml

你原来的变量文件多嵌套了一层vars键,include_vars加载时会导致变量层级错误,同时删掉硬编码的单台虚拟机配置,保留公用参数即可,修改后内容:

---
vmware:
  host: '{{ lookup("env", "VMWARE_HOST") }}'
  username: '{{ lookup("env", "VMWARE_USER") }}'
  password: '{{ lookup("env", "VMWARE_PASSWORD") }}'
vcenter_datacenter: "dc1"
vcenter_validate_certs: false
vm_template: "Win2019-Template"

3. 调整Playbook逻辑

原来的Playbook硬编码了单台虚拟机名称、固定跑在localhost,改成遍历动态清单内的目标主机,所有操作委托给localhost执行(快照操作是调用vCenter API完成,不需要直连目标虚拟机),同时直接引用动态清单自动拉取的虚拟机属性即可:

---
- name: 批量创建VMware虚拟机快照
  hosts: all # 如果要拍指定分组的虚拟机,替换成对应组名即可,比如hosts: network_lab_vms
  become: false
  gather_facts: false
  collections:
    - community.vmware
  pre_tasks:
    - include_vars: vars.yml
  tasks:
    - name: 为目标虚拟机创建快照
      vmware_guest_snapshot:
        hostname: "{{ vmware.host }}"
        username: "{{ vmware.username }}"
        password: "{{ vmware.password }}"
        datacenter: "{{ vcenter_datacenter }}"
        validate_certs: "{{ vcenter_validate_certs }}"
        # 按主机名匹配时用name参数,直接取动态清单的主机名即可
        name: "{{ inventory_hostname }}"
        # 如果要按UUID匹配,注释上面的name行,打开下面的uuid行即可,vSphere动态清单会自动注入uuid变量
        # uuid: "{{ config.uuid }}"
        folder: "{{ folder }}" # vSphere动态清单会自动拉取每台VM所属的folder路径,不需要硬编码
        state: present
        snapshot_name: "Ansible Managed Snapshot"
        description: "This snapshot is created by Ansible Playbook"
      delegate_to: localhost

注意事项

  • vSphere动态清单默认会为每个注入的主机自动携带name、config.uuid、folder、guest_name等内置变量,不需要手动定义
  • 如果动态清单拉取的folder路径和实际环境不匹配,可以在动态清单配置里开启「Show VM folder path」相关选项,同步时就会自动带回正确的文件夹路径
  • 作业运行前可以先在AWX里手动同步一次lab_vm动态清单,在清单的「主机」页确认所有目标VM已经被正确拉取,避免漏同步

内容的提问来源于stack exchange,提问作者bakesale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 21:15:37