获取ansible以等待ssh连接

获取ansible以等待ssh连接,ansible,Ansible,如何让ansible等待或重试ssh连接?我有一个ansible tsk,它运行govc将vm上载到vcenter,但之后我立即使用ssh连接到机器上运行如下命令: hosts: vcenter gather_facts: false tasks: - name: Download GOVC get_url: url: https://github.com/vmware/govmomi/releases/download/v0.20.0/govc_

如何让ansible等待或重试ssh连接?我有一个ansible tsk,它运行
govc
将vm上载到vcenter,但之后我立即使用ssh连接到机器上运行如下命令:

  hosts: vcenter
  gather_facts: false
  tasks:
    - name: Download GOVC
      get_url:
        url: https://github.com/vmware/govmomi/releases/download/v0.20.0/govc_linux_amd64.gz
        dest: /home/gkeadmin/govc_linux_amd64.gz
但是在我收到这个消息后立即执行:
fatal:[139.178.66.91]:无法访问!=>{“changed”:false,“msg”:“未能通过ssh连接到主机:ssh:connect to host 1.2.3.4端口22:操作超时”,“unreachable”:true}


我使用
--retry
命令再次运行它,然后它继续运行。似乎我需要一段时间才能通过ssh进行连接……如何等待在ansible中建立ssh连接?

ansible支持重试。愿这对你有帮助

---
- name: test
  retries: 2
  hosts: <hosts_name>
  tasks:
    - name: task
      <module_name>:
---
-名称:测试
重试次数:2次
主持人:
任务:
-名称:任务
:

ansible支持重试。愿这对你有帮助

---
- name: test
  retries: 2
  hosts: <hosts_name>
  tasks:
    - name: task
      <module_name>:
---
-名称:测试
重试次数:2次
主持人:
任务:
-名称:任务
:

例如,您可以在剧本顶部添加一个部分来等待它

---
- name: wait for ssh
  tasks:
  - wait_for:
      port: 22
      host: '{{ inventory_hostname }}'
    delegate_to: localhost
- name: my playbook
  hosts: vcenter
  gather_facts: false
  tasks:
   - name: Download GOVC
  [ ... etc ... ]

例如,您可以在剧本顶部添加一个部分来等待它

---
- name: wait for ssh
  tasks:
  - wait_for:
      port: 22
      host: '{{ inventory_hostname }}'
    delegate_to: localhost
- name: my playbook
  hosts: vcenter
  gather_facts: false
  tasks:
   - name: Download GOVC
  [ ... etc ... ]

可能重复的可能重复的