我正在ansible中建立一个小项目,并与其他项目共享一个节点。该节点是CI运行器,很少应作为剧本的目标。
默认情况下,我要从all
中排除组
我当前拥有的解决方案是建立一个名为旁观者的小组,并将其从所有运行all
的剧本中排除掉
主机:
[groupA]
node1
[bystanders]
ci-node
playbook_example:
hosts: all:!bystanders
...
但这很容易出错,或者忘记在某个剧本中无意中排除了该节点上的剧本。
答案 0 :(得分:0)
我在其他地方问了这个问题,并提到了Dynamic inventory脚本。
动态库存返回“全部”和“未分组”,因此我们可以使用动态库存脚本来操纵这些变量的结果。
{
"_meta": {
"hostvars": {}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {}
}
但是,在那次谈话中,有人提到“全部”是一种反模式,首先避免使用它是一个好主意。 “全部”表示全部,在这种情况下,项目特定的任何内容都不应使用“全部”。
所以我认为这为我回答了这个问题。我将避免全部使用,以防万一我真的需要这样做,我将使用动态清单脚本