【问题标题】:Ansible tries to connect to VM IP before executing the role creating the VMAnsible 在执行创建 VM 的角色之前尝试连接到 VM IP
【发布时间】:2018-04-25 22:58:39
【问题描述】:

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

然后,我将我的新虚拟机添加到主机,并将以下内容添加到hosts

[myvms]
myvm1

并扩展site.yml

- hosts: myvms
  roles: 
    - myvm

现在,当我跑步时:

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

它失败了:

致命:[myvm1]:无法访问! => {"changed": false, "msg": "通过 ssh 连接主机失败:192.168.10.13 端口 22 重置连接\r\n", "unreachable": true}

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

如何修复我的 Ansible 脚本以正确生成虚拟机?

【问题讨论】:

    标签: ansible vmware orchestration


    【解决方案1】:

    gather_facts: false 添加到该剧中。

    - hosts: myvms
      gather_facts: false
      roles: 
        - myvm
    

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

    【讨论】:

    • 但是虚拟机是在角色内部创建的。 wait_for 将等到 vm 可用。但除非该角色被执行,否则它将永远可用。
    猜你喜欢
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 2020-05-27
    • 2020-10-03
    • 1970-01-01
    • 2021-10-04
    相关资源
    最近更新 更多