关于ansible在使用playbook对一台host上的多个应用进行批量管理的问题
下面是我的inventory数据
{
"cmdb.4.source.1": {
"hosts": [
"192.168.2.22"
],
},
"cmdb.4.source.2": {
"hosts": [
"192.168.2.22"
],
},
"_meta": {
"hostvars": {
"192.168.2.22": {
"other_ip": [],
"app_meta": {
"cmdb.4.source.1": {
"process": {
"attribute": {
"fold": "cmdb_4_source_1",
},
},
},
"cmdb.4.source.2": {
"process": {
"attribute": {
"fold": "cmdb_4_source_2",
},
},
},
},
},
},
},
}
playbook的内容如下:
- hosts: "{{host}}"
gather_facts: no
tasks:
- name:
shell: echo “{{app_meta['process']['attribute']['fold']}}” >> /tmp/test.txt
我是通过正则的匹配方式去执行2个应用主机,实现往test.txt文件写入每个主机的inventory名字
我的正则使用是“~cmdb.5.Config.[0-9]”或者“~cmdb.5.Config.*”
但是我当我执行的时候发现只能匹配到一台应用host,也就是test文件只是被写入了一次,也就是说如果2个应用,指定到同一个host主机,会被ansible默认给去重掉,不知道有没有别的办法解决这问题
下面是执行的结果,找到了正确的host,但是只是执行了一次,我要结果是有2次被执行
PLAY [~cmdb.5.Config.[0-9]] ****************************************************
TASK [command] *****************************************************************
changed: [192.168.2.28]
PLAY RECAP *********************************************************************
192.168.2.28 : ok=1 changed=1 unreachable=0 failed=0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论