如何从'中排除库存组;全部';默认为Ansible?
我正在ansible中建立一个小项目,与其他项目共享一个节点。此节点是CI运行者,很少应成为剧本的目标 默认情况下,我想从如何从'中排除库存组;全部';默认为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。我在其他地方问了这个问题,并且提到了
all
中排除一个组
我目前的解决方案是建立一个名为“旁观者”的小组,并将其从所有运行all
主持人:
[groupA]
node1
[bystanders]
ci-node
剧本范例:
hosts: all:!bystanders
...
但是这很容易出错,或者忘记在某个playbook中排除它,在该节点上不经意地运行playbook。我在其他地方问了这个问题,并且提到了脚本 动态清单返回“all”和“ungroup”,因此我们可以使用动态清单脚本操作这些变量的结果
{
"_meta": {
"hostvars": {}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {}
}
然而,在那次对话中,有人提到“所有”都有点反模式,首先避免它可能是个好主意“全部”表示全部,在这种情况下,项目特定的任何内容都不应使用“全部”
因此,我认为这为我回答了这个问题。我将避免使用all,如果我真的需要这样做,我将使用动态清单脚本