gpt4 book ai didi

ansible - 在多个 list 主机组上运行 ansible 任务

转载 作者:行者123 更新时间:2023-12-04 16:40:36 25 4
gpt4 key购买 nike

我希望在多个库存组上运行相同的任务,例如:

[big_group]
greenhat
localhost
redhat
linux

[small_group]
localhost

[redhat_group]
redhat

从我的剧本中,我需要在 [small_group][redhat_group]

上运行一个任务

我的任务如下

  - name: Disable HTTPS service from firewalld
firewalld:
service: https
permanent: false
state: disabled
zone: public
immediate: true
when: inventory_hostname in groups['small_group']
when: inventory_hostname in groups['redhat_group']

收到警告

 [WARNING]: While constructing a mapping from firewall.yml, line 6, column 5, found a duplicate dict key (when). Using last defined value only.

剧本结果:

TASK [Disable HTTPS service from firewalld] **************************************************************************************************************************************************
skipping: [localhost]
skipping: [redhat]

如何在 when:inventory_hostname in groups[]

中指定多个组

谢谢

最佳答案

一个任务中不能有多个 when 子句。在您的情况下,您只需加入两个组 (+) 并删除多个条目(如果有)(使用 unique filter ,以便将来更改库存)。

when: inventory_hostname in ((groups['small_group'] + groups['redhat_group']) | unique )

同时,IMO 使用 inventory_hostnames lookup 有一种更方便的方式。并利用 patterns就像你在正常游戏中所做的那样

when: inventory_hostname in lookup('inventory_hostnames', 'small_group:redhat_group')

关于ansible - 在多个 list 主机组上运行 ansible 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61723033/

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