J'ai lu beaucoup de documentation Ansible sur les modules et les plugins pour VMWare, mais je ne trouve toujours pas de moyen de faire ce que je pense devrait être relativement simple. Je cherche à prendre un vCenter et à extraire l'arborescence d'inventaire, donc je connais tous les centres de données du vCenter, quels clusters se trouvent dans chaque centre de données et quelles machines virtuelles se trouvent dans chaque cluster, mais je n'arrive pas à trouver un moyen de le faire cette.

Je cherche à rassembler et à rassembler des informations sur chaque machine virtuelle sur un vCenter, ce que je peux presque faire avec le plugin d'inventaire dynamique community.vmware.vmware_vm_inventory. Cependant, aucune des données qu'il recueille sur chaque machine virtuelle ne semble inclure le centre de données et le cluster dans lesquels se trouve chaque machine virtuelle.

Certains des modules VMWare nécessitent que vous spécifiiez le centre de données ou le cluster dans lequel se trouve une machine virtuelle, donc sans ces informations, on ne peut pas gérer complètement un vCenter. Il faudrait toujours une source d'informations externe pour pouvoir convertir un vCenter entier dans l'état souhaité.

Est-ce que j'ai raté quelque chose ? Existe-t-il un moyen d'obtenir l'arborescence d'inventaire fournie par le client Web vSphere, à l'aide des modules et plug-ins VMWare dans Ansible ?

0
h4tter 3 nov. 2020 à 21:57

1 réponse

Meilleure réponse

Et si vous utilisiez le module vmware_vm_info ?
Le vmware_vm_info peut obtenir les informations d'appartenance de chaque vm.

---
- name: Example Playbook
  hosts: localhost
  gather_facts: false
  tasks:
    - name: Gather all vm info
      vmware_vm_info:
        hostname: "{{ vcenter_hostname }}"
        username: "{{ vcenter_username }}"
        password: "{{ vcenter_password }}"
        validate_certs: false
      register: gather_all_vm_info_result

    - debug:
        msg:
          - "VM Name{% raw %}:{% endraw %} {{ item.guest_name }}"
          - "Datacenter Name{% raw %}:{% endraw %} {{ item.datacenter }}"
          - "Cluster Name{% raw %}:{% endraw %}: {{ item.cluster }}"
          - "ESXi Name{% raw %}:{% endraw %} {{ item.esxi_hostname }}"
          - "Folder Name{% raw %}:{% endraw %} {{ item.folder }}"
      loop: "{{ gather_all_vm_info_result.virtual_machines }}"

Exemple de sortie

    "msg": [
        "VM Name: test_vm1",
        "Datacenter Name: DC",
        "Cluster Name:: Cluster",
        "ESXi Name: esxi-host.example.com",
        "Folder Name: /DC/vm"
    ]
1
sky_jokerxx 4 nov. 2020 à 15:25