ansible - 获得 ansible 等待 ssh 连接
问题描述
你如何让 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]: 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 连接...我如何等待 ssh 连接在 ansible 中建立?
解决方案
例如,您可以在剧本顶部添加一个部分以等待它
---
- 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
推荐阅读
- jquery - 如何获取标题标题并将其显示在另一个 div 或 span 中?
- node.js - 将 node.js 中查询函数的输出变量返回到该函数的外部
- node.js - 为什么我无法在 Webpack-ed 节点 8.1.0 AWS Lambda 函数中访问导出类的函数
- c# - 尝试建立连接以读取 Access 数据库中的文件,出现静态错误
- verilog - Verilog中任务的整数输入
- java - 我如何让网格从上到下开始
- jquery - JQuery document.ready 在 Firefox 和 MS Edge 中触发,但在 Ajax 调用后未在 Chrome 中触发
- python - 避免在 gitlab CI 脚本管道中提前退出命令,同时仍捕获退出状态
- r - 折叠选择组
- python - Python; 读取和写入文件夹中的所有文件