我正在迁移到Ansible角色模型,我有以下结构 -
../角色/ VMS /任务/ main.yml
---
# To Create VMs on the VMware vCenter Server
- name: Creation of Windows 8.1 VMs
vsphere_guest:
vcenter_hostname: "name"
guest: "{{ item }}"
from_template: yes
template_src: "templatename"
validate_certs: no
esxi:
datacenter: dc
hostname: hname
with_items: "{{ vmname81 }}"
../角色/ VMS /瓦尔/ main.yml
---
vmname81:
- Client1
- Client2
- Client3
vmname10:
- Client4
- Client5
playbook.yml
---
# To Create VMs on the VMware vCenter Server
- hosts: localhost
name: Creation of Windows 8.1 VMs
roles:
- { role: vms }
正如您在剧本中看到的,我正在尝试创建Windows 8.1虚拟机,但我无法弄清楚如何在创建8.1虚拟机的角色中传递vmname81。这里提供的输入需要由/tasks/main.yml中的with_items使用,以便创建三个Windows 8.1 VM。我也有兴趣知道这是否可以更好地完成。
答案 0 :(得分:3)
您不应将VM名称添加到角色,角色应该是通用的。
with_items: "{{ vmname81 }}"
替换为with_items: "{{ vm_names }}"
vmname81
,vmname10
)移至您的playbook / hosts / groups vars 应用以下角色:
- hosts: localhost
name: Creation of Windows 8.1 VMs
roles:
- role: vms
vm_names: "{{ vmname81 }}"