Ansible 在执行创建 VM 的角色之前尝试连接到 VM IP

Ansible tries to connect to VM IP before executing the role creating the VM

我正在尝试开发 Ansible 脚本来生成虚拟机。我写了一个 myvm 角色,其中包含编排 vmware_guest 的脚本。此脚本包含 vmware_guest 需要的 delegate_to: localhost

然后,我将我的 new-to-be-vm 添加到主机,并将以下内容添加到 hosts

[myvms]
myvm1

并扩展 site.yml 为:

- hosts: myvms
  roles: 
    - myvm

现在,当我 运行:

ansible-playbook site.yml -i hosts --limit myvm1

它失败了:

fatal: [myvm1]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Connection reset by 192.168.10.13 port 22\r\n", "unreachable": true}

似乎 ansible 在读取创建虚拟机的实际角色之前尝试连接到虚拟机 ip,它委托给本地主机。但是,将 'delegate_to' 添加到 site.yml 会失败。

如何修复我的 Ansible 脚本以便为我正确生成 VM?

gather_facts: false出戏

- hosts: myvms
  gather_facts: false
  roles: 
    - myvm

Ansible 默认连接到目标机器并运行收集数据(事实)的脚本。