![](/img/trans.png)
[英]Ansible - vmware: how to find a guest on a multiple hosts vcenter?
[英]Ansible: vmware parallel deployment with multiple Vcenter
我正在尝试编写剧本,该剧本将在 3 个 ESXI 服务器上从模板到带有 Ansible vmware_guest 模块的 Vcenter 创建 3 个虚拟机。
问题是我有 3 个不同的 Vcenter,每个 Vcenter 有 3 个 ESXI 主机,并且 playbook 必须在所有 ESXI 主机上并行创建所有虚拟机。
我试过循环,但循环一步一步地做。
这是我目前的剧本版本。
如果有人帮助我,我将非常感激:)
--- # create a new VM from a template - name: VM from template hosts: localhost gather_facts: false connection: local vars: vcenter_hostname: 10.0.0.1 vcenter_user: john.doe vcenter_pass: Passw0rd vmtemplate: test-teplate name: "newvm2" notes: Ansible Test tasks: - name: Create VM from template vmware_guest: validate_certs: False hostname: "{{ vcenter_hostname }}" username: "{{ vcenter_user }}" password: "{{ vcenter_pass }}" esxi_hostname: "{{ item.esxhost }}" datacenter: Datacenter1 folder: templates name: "{{ name }}" template: "{{ vmtemplate }}" disk: - size_gb: 100 datastore: "{{ item.datastore }}" wait_for_ip_address: False state: present register: newvm2 loop: - {esxhost: '10.0.46.142', datastore: 'Datastore_XXX'} - {esxhost: '10.0.46.143', datastore: 'Datastore_ZZZ'}
您可以通过将每个 ESX 主机动态添加到清单来并行创建它们,它看起来像这样:
- hosts: localhost
gather_facts: False
tasks:
- add_host:
hostname: '{{item.esxhost}}'
groups: vms
esxhost: '{{ item.esxhost }}'
datastore: '{{ item.datastore }}'
loop:
- {esxhost: '10.0.46.142', datastore: 'Datastore_XXX'}
- {esxhost: '10.0.46.143', datastore: 'Datastore_ZZZ'}
- name: VM from template
hosts: vms
gather_facts: false
connection: local
vars:
vcenter_hostname: 10.0.0.1
vcenter_user: john.doe
vcenter_pass: Passw0rd
vmtemplate: test-teplate
name: "newvm2"
notes: Ansible Test
tasks:
- name: Create VM from template
vmware_guest:
validate_certs: False
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_user }}"
password: "{{ vcenter_pass }}"
esxi_hostname: "{{ esxhost }}"
datacenter: Datacenter1
folder: templates
name: "{{ name }}"
template: "{{ vmtemplate }}"
disk:
- size_gb: 100
datastore: "{{ datastore }}"
wait_for_ip_address: False
state: present
register: newvm2
您可以使用相同的原理同时创建所有 9 个 VM。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.