Ansible可等待连接有效

Ansible可等待连接有效,ansible,ansible-2.x,Ansible,Ansible 2.x,我正在尝试使用ansible从API下载证书,下面是我使用的: -名称:获取Shipa API地址 shell:kubectl--namespace=shipa system get svc shipa ingres nginx-o jsonpath=“{.status.loadBalancer.ingres[0].ip}” 环境: 术语:哑巴 注册:shipa_api 截止日期:shipa_api.stdout | ipaddr 重试次数:5次 延误:90 在API IP可用之前,这非常有效

我正在尝试使用ansible从API下载证书,下面是我使用的:

-名称:获取Shipa API地址
shell:kubectl--namespace=shipa system get svc shipa ingres nginx-o jsonpath=“{.status.loadBalancer.ingres[0].ip}”
环境:
术语:哑巴
注册:shipa_api
截止日期:shipa_api.stdout | ipaddr
重试次数:5次
延误:90
在API IP可用之前,这非常有效,在下一步中,我将执行以下操作:

-name:将Shipa添加为CLI上的目标
shell:shipa目标添加{{cluster_name}{{shipa_apiaddr}-s
args:
可执行文件:/bin/bash
无日志:False
此步骤调用该API IP并尝试从IP检索证书,但问题是,即使IP可用,API服务也可能尚未运行,因此我将此作为响应:

fatal: [localhost]: FAILED! => {"changed": true, "cmd": "shipa target add s12-rc4-t2 35.247.97.88 -s", "delta": "0:00:00.164987", "end": "2020-12-18 11:53:23.177987", "msg": "non-zero return code", "rc": 1, "start": "2020-12-18 11:53:23.013000", "stderr": "Error: Get \"https://35.247.97.88:8081/certificates/ca\": dial tcp 35.247.97.88:8081: connect: connection refused", "stderr_lines": ["Error: Get \"https://35.247.97.88:8081/certificates/ca\": dial tcp 35.247.97.88:8081: connect: connection refused"], "stdout": "", "stdout_lines": []}
Ansible是否有办法在尝试下一步“将Shipa添加为CLI上的目标”之前检查API服务是否可用,以便不会失败?

您可以使用该模块等待特定IP/端口对接受连接

比如:

-等待:
主持人:35.247.97.88
端口:8081
延误:10

所以在你的情况下,我想:

-等待:
##取决于变量shipa_apiaddr中的内容
##(仅限ip或ip:端口)
#主机:“{shipa_apiaddr.split(':').0}”
主机:“{shipa_apiaddr}”
##取决于变量shipa_apiaddr中的内容
##(仅限ip或ip:端口)
##不确定如何防止基于您的问题对其进行硬编码
#端口:“{shipa_apiaddr.split(':').1}”
端口:8081
延误:10