我正在尝试开发用于创建多个VM的代码,使用Ansible中的模块部署ovf。我试过用其他方法找出答案,但是,没有成功。在这里你可以看到我的剧本:
- hosts: localhost
become: yes
gather_facts: false
vars_files:
- vars: vars.yml
tasks:
- name: deploy ovf
vmware_deploy_ovf:
hostname: "{{ hostname }}"
username: "{{ username }}"
password: "{{ password }}"
validate_certs: "{{ validate_certs }}"
datacenter: "{{ datacenter }}"
name: "{{ vm_name }}"
ovf: "{{ ovf_path }}"
cluster: "{{ cluster }}"
wait_for_ip_address: true
inject_ovf_env: false
power_on: no
datastore: "{{ datastore }}"
networks: "{{ vcen_network }}"
disk_provisioning: thin在变量文件中,我将"vm_name“设置为list。
vars.yml
vm_name:
vm-01
vm-02因此,我使用额外的变量运行代码,如下所示:
ansible-playbook main.yml -e "vm_name=vm-01" -e "vm_name=vm-02".它只创建vm-02,但两者都不适用。此外,我尝试使用“循环”或"with_items",但是,它没有成功。请协助,谢谢
发布于 2022-11-08 15:02:57
嗯。别干那事。把主机放在你的存货里,让Ansible做它的事情:
- hosts: all
become: no
gather_facts: false
vars_files:
- vars: vars.yml
tasks:
- name: deploy ovf
vmware_deploy_ovf:
# hostname: "{{ hostname }}" # use environment variables
# username: "{{ username }}" # use environment variables
# password: "{{ password }}" # use environment variables
validate_certs: "{{ validate_certs }}"
datacenter: "{{ datacenter }}"
name: "{{ inventory_hostname }}"
ovf: "{{ ovf_path }}"
cluster: "{{ cluster }}"
wait_for_ip_address: true
inject_ovf_env: false
power_on: no
datastore: "{{ datastore }}"
networks: "{{ vcen_network }}"
disk_provisioning: thin
delegate_to: localhosthttps://stackoverflow.com/questions/74319890
复制相似问题