как получить папку VMware из кли - PullRequest
0 голосов
/ 13 апреля 2020

Я пишу ansible скрипт для отключения нескольких виртуальных машин, когда они не нужны. Я могу сделать это, когда знаю, где находится виртуальная машина. Проблема в том, что виртуальная машина может перемещаться в разные папки, если она перемещается на другой хост. Согласно статье ниже, мне нужно знать папку виртуальной машины, которая снова может измениться. Не уверен, как получить папку автоматически. Есть ли способ сделать это с помощью 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

1 Ответ

0 голосов
/ 13 апреля 2020

Сначала получите информацию о виртуальной машине, используя модуль vmware_guest_info , а затем передайте папку в следующей задаче, например,

- 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  
...