Ansible模块vmware\u主机\u事实仅返回一台主机
我正在使用Ansible VMWare模块,并尝试从vCenter获取ESXi主机的所有信息 使用模块vmware\u host\u facts应该是可能的 但是,当我使用以下配置运行Playbook时,我只返回一个主机的信息,而不是所有主机的信息。此vCenter中大约有20台主机 剧本:Ansible模块vmware\u主机\u事实仅返回一台主机,ansible,Ansible,我正在使用Ansible VMWare模块,并尝试从vCenter获取ESXi主机的所有信息 使用模块vmware\u host\u facts应该是可能的 但是,当我使用以下配置运行Playbook时,我只返回一个主机的信息,而不是所有主机的信息。此vCenter中大约有20台主机 剧本: - name: Gather vmware host facts vmware_host_facts: hostname: vCenter_IP username: username
- name: Gather vmware host facts
vmware_host_facts:
hostname: vCenter_IP
username: username
password: password
register: host_facts
delegate_to: localhost
在文档中,它告诉我,主机名也可以是vCenter IP
资源:
该模块不是从vCenter收集所有主机信息的正确模块吗?还是有一个“隐藏的把戏”,而我却错过了
非常感谢
亲切问候,,
M我将此模块与这些选项一起使用,到目前为止,如果我输入vcenter地址,它只会给我第一个Esxi输出,我会遇到一个问题
- name: Somethign.
vmware_host_facts:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_user }}'
password: '{{ vcenter_pass }}'
validate_certs: no
register: all_cluster_hosts_facts
delegate_to: localhost
- debug: var=all_cluster_hosts_facts
我得到了另一个资源的答案。 基本上,您必须将主机名作为列表添加到任务中 例如:
- name: Gather vmware host facts
vmware_host_facts:
hostname: "{{ item.esxi_hostname }}"
username: "{{ item.esxi_user }}"
password: "{{ item.esxi_pass }}"
validate_certs: no
register: host_facts
delegate_to: localhost
with_items:
- {esxi_hostname: hostname_1, esxi_user: username_host_1, esxi_pass: pass_host_1}
- {esxi_hostname: hostname_2, esxi_user: username_host_2, esxi_pass: pass_host_2}
您可以使用另一个模块收集这些主机名—vmware_vm_facts。在这里您可以从中获取主机名。在不久的将来,我将用一个示例剧本来更新它