如何从cli获取VMware文件夹

问题描述 投票:0回答:1

我正在编写一个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
python-3.x ansible vmware
1个回答
0
投票

首先使用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  
© www.soinside.com 2019 - 2024. All rights reserved.