如何从'中排除库存组;全部';默认为Ansible?

如何从'中排除库存组;全部';默认为Ansible?,ansible,continuous-deployment,ansible-inventory,Ansible,Continuous Deployment,Ansible Inventory,我正在ansible中建立一个小项目,与其他项目共享一个节点。此节点是CI运行者,很少应成为剧本的目标 默认情况下,我想从all中排除一个组 我目前的解决方案是建立一个名为“旁观者”的小组,并将其从所有运行all 主持人: [groupA] node1 [bystanders] ci-node 剧本范例: hosts: all:!bystanders ... 但是这很容易出错,或者忘记在某个playbook中排除它,在该节点上不经意地运行playbook。我在其他地方问了这个问题,并且提到了

我正在ansible中建立一个小项目,与其他项目共享一个节点。此节点是CI运行者,很少应成为剧本的目标

默认情况下,我想从
all
中排除一个组

我目前的解决方案是建立一个名为“旁观者”的小组,并将其从所有运行
all

主持人:

[groupA]
node1
[bystanders]
ci-node
剧本范例:

hosts: all:!bystanders
...

但是这很容易出错,或者忘记在某个playbook中排除它,在该节点上不经意地运行playbook。

我在其他地方问了这个问题,并且提到了脚本

动态清单返回“all”和“ungroup”,因此我们可以使用动态清单脚本操作这些变量的结果

{
    "_meta": {
            "hostvars": {}
    },
    "all": {
            "children": [
                    "ungrouped"
            ]
    },
    "ungrouped": {}
 }
然而,在那次对话中,有人提到“所有”都有点反模式,首先避免它可能是个好主意“全部”表示全部,在这种情况下,项目特定的任何内容都不应使用“全部”

因此,我认为这为我回答了这个问题。我将避免使用all,如果我真的需要这样做,我将使用动态清单脚本