gpt4 book ai didi

ansible - 在不同主机上执行 Ansible 任务

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

我创建了一个角色,在其中定义了所有 ansible 任务。我的库存中还有主机 A 和主机 B。是否可以在主机 A 上执行 90% 的任务,在主机 B 上执行 10% 的任务?我的 Ansible Controller 是主机 C。

最佳答案

我能想到的第一种方法是使用基于库存的条件。

在库存中为 A 创建一个组,为 B 创建一个组。我将它们命名为 group_A 和 group_B

# inventory
[group_A]
192.168.1.20

[group_B]
192.168.1.30

然后在任务中使用条件

- name: run this on A
debug: msg="this runs only on A
when: "'group_A' in {{group_names}}"

- name: run this on B
debug: msg="this runs only on B
when: "'group_B' in {{group_names}}"

根据您有多少任务,为每个任务添加条件可能会太多,因此您可以在包含上使用条件,如下所示:

文件结构:

-tasks
|- main.yml
|- A_tasks.yml
|- B_tasks.yml

main.yml:

- include: A_tasks.yml
when: "'group_A' in {{group_names}}"
- include: B_tasks.yml
when: "'group_B' in {{group_names}}"

A_tasks.yml:

- name: run on A
debug: msg="this only runs on A"

B_tasks.yml:

- name: run on B
debug: msg="this only runs on B"

关于ansible - 在不同主机上执行 Ansible 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37225589/

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