gpt4 book ai didi

ansible - 有没有办法在 Ansible Inventory 文件中验证一个组的主机数量?

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

我的要求如下所示,我有一个 Ansible list 文件,它根据下面显示的组件分为一些组:

[all]

node1
node2
node3
node4

[webapp]
node3
node4

[ui]
node1

有没有一种方法可以在 list 文件中验证一个组的主机数量,如果条件失败,那么 playbook 不应运行?

我的条件是:ui 组应该总是只有一个主机。

例如:

[ui]
node1 -- condition check pass proceed with playbook execution

[ui]
node1
node2 -- condition fails should stop playbook execution with exception
with ui group cannot have more than one hosts

最佳答案

您可以在一个任务中轻松完成:


例如:

- name: Inventory validation
hosts: localhost
gather_facts: false
tasks:
- assert:
that:
- "groups['ui'] | length <= 1"
- "groups['webapp'] | length <= 1"

但是(这是基于注释的)如果先给变量赋值,比较时需要将值强制转换为整数:

- name: Inventory validation
hosts: localhost
gather_facts: false
vars:
UI_COUNT: "{{ groups['ui'] | length }}"
WEBAPP_COUNT: "{{ groups['webapp'] | length }}"
tasks:
- assert:
that:
- "UI_COUNT | int <= 1"
- "WEBAPP_COUNT | int <= 1"

关于ansible - 有没有办法在 Ansible Inventory 文件中验证一个组的主机数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47549533/

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