我正在使用Ansible VMWare模块,并试图从vCenter获取ESXi主机的所有信息。
使用模块 vmware_host_facts ,应该可以。
但是当我运行具有以下配置的Playbook时,我只能获得一个主机的信息 - 而不是全部。在此vCenter中,大约有20个主机。
剧本:
- name: Gather vmware host facts
vmware_host_facts:
hostname: vCenter_IP
username: username
password: password
register: host_facts
delegate_to: localhost
在它告诉我的文档中,主机名也可以是vCenter IP。
资源: http://docs.ansible.com/ansible/latest/modules/vmware_host_facts_module.html#vmware-host-facts
该模块不是从vCenter收集所有主机信息的正确模块吗?或者是否有一个"隐藏的技巧",我错过了?
非常感谢!
亲切的问候, 中号
答案 0 :(得分:1)
我在另一个资源上得到了答案。 https://github.com/ansible/ansible/issues/43187
基本上,您必须将主机名作为列表添加到任务中。
示例:
- 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收集的这些主机名。在这里,您可以从中获取主机名。我将在不久的将来用示例剧本进行更新。
答案 1 :(得分:0)
我将这些模块与这些选项一起使用,到目前为止,如果我仅将vcenter地址放在第一个Esxi输出上,我将遇到一个问题。
registration.pushManager.subscribe(subscribeOptions);