如何让ansible等待或重试ssh连接?我有一个ansible tsk,它运行govc将虚拟机上传到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]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 1.2.3.4 port 22: Operation timed out", "unreachable": true}
我再次使用--retry命令重新运行它,然后它继续运行。在我可以通过ssh...how连接之前,似乎只需要一段时间,我需要等待ssh连接在ansible中建立吗?
发布于 2019-03-22 15:49:01
ansible支持重试。希望这能对你有所帮助。
---
- name: test
retries: 2
hosts: <hosts_name>
tasks:
- name: task
<module_name>:发布于 2019-03-22 18:29:29
您可以在攻略顶部添加一个部分来等待它,例如
---
- 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 ... ]https://docs.ansible.com/ansible/latest/modules/wait_for_module.html#examples
https://stackoverflow.com/questions/55294752
复制相似问题