Ansible 如何创建与组a(主机除外)匹配的模式;“测试主机”;B组呢?
我有两组服务器A和B,我需要排除的其中一个服务器在A组中 我尝试了以下模式:Ansible 如何创建与组a(主机除外)匹配的模式;“测试主机”;B组呢?,ansible,Ansible,我有两组服务器A和B,我需要排除的其中一个服务器在A组中 我尝试了以下模式: GroupA:!test-host,GroupB 这会导致“没有匹配的主机” 我该怎么做呢?你可以 使用动态分组(groupbymodule)创建新组 使用预期要运行的主机列表预计算变量: 组变量/all.yaml: mygroup: '{{ groups.foo|difference(groups.bar) }}' 播放: 或者,如果主机在特定组中,您可以终止主机的播放 - name: Stop doing th
GroupA:!test-host,GroupB
这会导致“没有匹配的主机”
我该怎么做呢?你可以
groupby
module)创建新组mygroup: '{{ groups.foo|difference(groups.bar) }}'
播放:
- name: Stop doing this for bar
meta: end_host
when: "'bar' in group_names"
groupby
module)创建新组mygroup: '{{ groups.foo|difference(groups.bar) }}'
播放:
- name: Stop doing this for bar
meta: end_host
when: "'bar' in group_names"
shell>cat主机
[A组]
测试1
测试2
测试主机
[B组]
测试3
测试4
还有剧本
shell>cat pb.yml
-主持人:groupB:groupA:!测试主机
任务:
-调试:
var:ansible\u play\u hosts\u all
跑一次:对
给予
shell>ansible剧本-i主机pb.yml
确定:[test3]=>{
“ansible\u play\u hosts\u all”:[
“测试3”,
“测试4”,
“测试1”,
“测试2”
]
}
使用剧本中的
-hosts:all
,命令会给出相同的结果
shell>ansible剧本-i主机-l'groupB:groupA:!测试主机的pb.yml
库存
shell>cat主机
[A组]
测试1
测试2
测试主机
[B组]
测试3
测试4
还有剧本
shell>cat pb.yml
-主持人:groupB:groupA:!测试主机
任务:
-调试:
var:ansible\u play\u hosts\u all
跑一次:对
给予
shell>ansible剧本-i主机pb.yml
确定:[test3]=>{
“ansible\u play\u hosts\u all”:[
“测试3”,
“测试4”,
“测试1”,
“测试2”
]
}
使用剧本中的
-hosts:all
,命令会给出相同的结果
shell>ansible剧本-i主机-l'groupB:groupA:!测试主机的pb.yml
有没有办法创建一些模式,我可以使用--limit?是的<代码>--限制“foo:!条形图“。是否有任何方法可以为此创建一些模式,我可以使用--limit?是的<代码>--限制“foo:!条形图“。