我正在编写一个Ansible脚本来关闭不需要的多个VM。当我知道VM的位置时,便可以执行此操作。问题在于,如果VM移动到其他主机,则VM可能会移动到其他文件夹。根据下面的文章,我需要知道VM的文件夹,它可能会再次更改。不确定如何自动获取文件夹。有没有一种方法可以使用Ansible和/或Python将其输入脚本中?
https://docs.ansible.com/ansible/latest/modules/vmware_guest_powerstate_module.html
- name: Set the state of a virtual machine to poweroff
vmware_guest_powerstate:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: no
folder: "/{{ datacenter_name }}/vm/my_folder"
name: "{{ guest_name }}"
state: powered-off
delegate_to: localhost
register: deploy
首先使用vmware_guest_info模块获取有关VM的信息,然后像这样在下一个任务中传递文件夹,
- name: Gather info about the vmware guest vm
vmware_guest_info:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
validate_certs: no
name: "{{ guest_name }}"
delegate_to: localhost
register: vm_info
- name: Set the state of a virtual machine to poweroff
vmware_guest_powerstate:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: no
folder: "{{ vm_info['hw_folder']}}"
name: "{{ guest_name }}"
state: powered-off
delegate_to: localhost
register: deploy