gpt4 book ai didi

ansible - 使用 delegate_to 运行 adhoc wait_for

转载 作者:行者123 更新时间:2023-12-02 15:12:11 25 4
gpt4 key购买 nike

我的 Makefile 有以下步骤

   create:
do create stuff
# extra ansible adhoc command to wait for ssh

setup:
do other stuff

我想在 do create stuff 之后添加一个步骤,等待所有主机都可以访问其 ssh 端口,但我不想提交一个额外的剧本来执行此操作:

  - hosts: all
tasks:
- name: wait for ssh port
wait_for:
host: '{{ ansible_ssh_host }}'
port: 22
timeout: 300
delegate_to: localhost

我尝试使用一个临时命令来运行上面的命令,但使用本地操作

ansible all -i inventory -m local_action -a 'wait_for port=22 timeout=300'

但这不是正确的原因

ERROR! this task 'local_action' has extra params, which is only allowed in the following modules: command, win_command, shell, win_shell, script, include, include_vars, add_host, group_by, set_fact, raw, meta

最佳答案

my Makefile has the following steps

create:
do create stuff
# extra ansible adhoc command to wait for ssh

来自评论:

  • So you want to check whether all the target servers are pingable or not ? – Shasha99
  • Not pingable. Ssh-able.

我不知道你为什么要使用 Ansible 来做这件事。这是一个简单的 bash 循环(添加一个外部循环来迭代您的主机):

for i in {1..30}; do
ssh $host true 2> /dev/null
if [ $? -eq 0 ]; then
exit
else
sleep 10
fi
done

关于ansible - 使用 delegate_to 运行 adhoc wait_for,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40907681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com