我尝试使用正则表达式模式与ansible匹配主机,但它没有按预期工作。我的清单如下所示:
[group1]
hello1
world1
hello2
world2
[group2]
hello3
我的任务是:
- debug:
msg: "{{ item }}"
with_inventory_hostnames:
- ~hello*
从他们的文档中:
Using regexes in patterns
You can specify a pattern as a regular expression by starting the pattern with ~:
~(web|db).*\.example\.com
当我执行这个任务时没有输出。我是一个使用正则表达式的n00b,所以有没有可能我的正则表达式是错误的?
1条答案
按热度按时间yeotifhr1#
问:"有没有可能我的正则表达式是错误的?"***
答:这是一个bug。请参见inventory_hostnames lookup doesn't support wildcards in patterns #17268。它可能是fixed in 2.10。但我认为您的模式不起作用,因为文档说:
"You can use wildcard patterns with FQDNs or IP addresses, as long as the hosts are named in your inventory by FQDN or IP address"
。清单中的主机既不是FQDN,也不是IP。问:"有没有办法使用正则表达式来匹配ansible中的主机?"***
答:是的。一个非常方便的方法是使用add_host模块创建动态组。例如下面的行动手册
给出(删节)
下一个选项是清单插件 * constructed *。
1.创建清单
一个一个三个一个一个一个一个一个四个一个一个一个一个一个五个一个
1.测试库存
您可以看到插件创建了两个组:* 世界组 * 和 * 您好组 *。
1.使用组。例如,
给予