gpt4 book ai didi

ansible - 在 Ansible 中尝试多个端口

转载 作者:行者123 更新时间:2023-12-04 00:56:34 24 4
gpt4 key购买 nike

我正在编写一个可靠的剧本来为我提供一个 Web 服务器。此过程的一部分涉及使用 geerlingguy/ansible-role-security 角色(我用它来更改默认 ssh 端口)。但是,由于端口更改,您无法在不更改 ansible_ssh_port 变量的情况下一遍又一遍地运行 playbook。这似乎违背了幂等性的全部观点,因为您必须在运行之间编辑剧本。所以我想知道是否有办法描述 2 个端口供 ansible 尝试。这样,它会在脚本第一次运行时使用端口 22,但在所有其他时间它将使用另一个端口。

我尝试寻找尝试不同端口的方法,但我找不到任何东西。

最佳答案

我遇到了类似的情况,并找到了使用 wait_for 的解决方法和 set_fact模块。

这个想法是设置ansible_port如果一个端口是可访问的。
下面是检查和设置使用 port1 指定的端口的示例多变的。没有必要使用 ignore_errors或检查此示例场景中的结果,但如果需要测试多个端口,可能会很有用。另外,delegate_to: localhost如果播放正在使用远程主机,则可以使用。

根据需要使用循环、 block 、救援等进一步扩展实现。

- name: test1
wait_for:
host: hostname
port: "{{ port1 }}"
timeout: 10
ignore_errors: yes
register: result
delegate_to: localhost

- name: set ansible_port
set_fact:
ansible_port: "{{ port1 }}"
when: not result.failed

关于ansible - 在 Ansible 中尝试多个端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62171875/

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