gpt4 book ai didi

ansible - 在 ansible 组中仅选择 1 个节点

转载 作者:行者123 更新时间:2023-12-05 08:42:14 24 4
gpt4 key购买 nike

我有一个 ansible list 文件,如下所示:

[database]
172.29.225.95 is_master=true
172.29.225.93 is_master=false
172.29.225.94 is_master=false

我只想在 172.29.225.95 主节点上运行我的剧本,但是 Ansible 中有没有一种方法可以简单地选择一个我想在其上运行剧本的节点?

我试过一个肮脏的 hack。只需在我的 list 文件中添加一个新条目并仅使用该组即可。

[database-master]
172.29.225.95

然后

- name: Perform Health Checks.
hosts: database-master
tasks:
- name: Check Postgres cluster status.
shell: /usr/efm-2.0/bin/efm cluster-status efm
register: output

但我觉得这只是一种解决方法,而不是可靠的解决方案。所以只使用 [database] 组,我可以让 Ansible 只在 172.29.225.95 上运行剧本吗?

最佳答案

您可以在任务中使用run_once 选项。这告诉您的剧本仅在您组的第一台主机上运行任务。如果您有一个特定的主机可以运行它,您可以将它与 delegate_to

结合使用

因此在您的示例中,这看起来像这样,而 database-master 只是您主机名的占位符:

tasks:
- name: Check Postgres cluster status.
shell: /usr/efm-2.0/bin/efm cluster-status efm
run_once: true
delegate_to: database-master
register: output

另见官方ansible documentation .

关于ansible - 在 ansible 组中仅选择 1 个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43051111/

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