【问题标题】:Ansible playbook fails to connect to a guest VM. Exception thrown NewConnectionErrorAnsible playbook 无法连接到来宾 VM。抛出异常 NewConnectionError
【发布时间】:2022-11-10 01:12:38
【问题描述】:

我创建了一个剧本来在 vmware Vcenter 中创建 VM。它工作得很好。我已经使用我的本地主机作为主机在这个 vcenter 上创建了一个 vm。现在,我正在尝试在新创建的虚拟机上执行命令,但出现连接错误。我的 ansible playbook 显示的错误消息尝试从部署新 vm 的 ESX 主机登录。请帮我解决这个问题。 我的剧本:

---
 - name : do opearation on vm
   hosts : rhel66
   vars_files :
      - "playbook_vars.yml"
   tasks :
     - name : Run command inside a vm
       vmware_vm_shell :
              hostname: "{{ vcenter_name }}"
              username: "{{ vcenter_username }}"
              password: "{{ vcenter_password }}"
              datacenter: "{{ vcenter_datacenter }}"
              #folder: AutomationDevelopment/vm/Environments/Env07/rhel66_testvm
              vm_id: "{{ vm_name }}"
              validate_certs : false
              vm_username: root
              vm_password: *******
              vm_shell: /bin/echo
              vm_shell_args: " $var >> myFile "
              vm_shell_env:
                   - "PATH=/bin"
                   - "VAR=test"
              vm_shell_cwd: "/tmp"
       register: shell_command_output

剧本输出:

 ____________________________
< PLAY [do opearation on vm] >
 ----------------------------
 ________________________
< TASK [Gathering Facts] >
 ------------------------|

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: requests.exceptions.ProxyError: HTTPSConnectionPool(host='YY.YY.YY.YY', port=443): Max retries exceeded with url: /guestFile?id=235&token=52009a00-3927-ee12-8e82-bb795a2332c5235 (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f4d69e0c0f0>: Failed to establish a new connection: [Errno 113] No route to host',)))
fatal: [XX.XX.XX.XX]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}
 ____________
< PLAY RECAP >
 ------------

在上面的错误中: XX.XX.XX.XX -> my new vm IP and YY.YY.YY.YY is my ESX host 部署了这个新的 vm

【问题讨论】:

    标签: ansible connection


    【解决方案1】:

    我可以知道为什么使用 vmware_vm_shell 模块吗? 如果VM上开启了SSH,可以直接试试shell模块。。

    【讨论】:

    • 这发布在答案部分。我建议在问题上使用“评论”选项,而不是将其视为线程。答案是为真实的答案保留的,而不是作为一个线程。
    • 如果我想使用 vmware_vm_shell,我应该做些什么改变?我有多个测试需要使用模块 community.vmware.vmware_guest_snapshot ,所有这些地方我都得到了线程中提到的相同错误
    • 您必须包含以下集合collections:- name: community.vmware。 VMware 社区集合依赖于以下第三方库:Pyvmomi 和 vSphere Automation SDK for Python。然后可以直接使用模块 community.vmware.vmware_guest_snapshot
    【解决方案2】:

    在处理完这个问题并实际回答了我自己的问题(因为这里没有答案而被问到)之后,我认为你的问题是路由。没有路由到主机。我最初不明白的是它正在尝试连接到 vm 所在的主机,而不是 vCenter。希望这会有所帮助。我将它用于 Windows VM,即连接插件,它在尝试在 Windows 2016 VM 上安装 openssh 时很有帮助。当您需要在连接网络之前做一些事情时,它也很有帮助。

    【讨论】:

      猜你喜欢
      • 2019-07-21
      • 2019-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      相关资源
      最近更新 更多