Puppet 在mcollective库存查询中,可以使用regex作为事实名称吗?

Puppet 在mcollective库存查询中,可以使用regex作为事实名称吗?,puppet,inventory,mcollective,Puppet,Inventory,Mcollective,我正在尝试获取mcollective中每个节点的所有IP地址的列表。我遇到的问题是各种各样的ipaddress{interface}名称,尤其是在不再使用eth的较新EL系统上。有没有办法为事实名称传递通配符或正则表达式 我的目标是能够使用mco inventory或其他同样快速的工具生成包含所有节点上每个IP地址的报告: 我尝试了几份不同的报告,但都失败了,内容大致如下: #cat ipaddrs.mc inventory do format "%40s:\t%24s\t%s"

我正在尝试获取mcollective中每个节点的所有IP地址的列表。我遇到的问题是各种各样的
ipaddress{interface}
名称,尤其是在不再使用eth的较新EL系统上。有没有办法为事实名称传递通配符或正则表达式

我的目标是能够使用
mco inventory
或其他同样快速的工具生成包含所有节点上每个IP地址的报告:


我尝试了几份不同的报告,但都失败了,内容大致如下:

#cat ipaddrs.mc

inventory do
    format "%40s:\t%24s\t%s"

    fields { [ identity, facts["server_role"], facts[/ipaddress_(.*)/] ] }
end
#mco清单--脚本ipaddrs.mc

inventory do
    format "%40s:\t%24s\t%s"

    fields { [ identity, facts["server_role"], facts[/ipaddress_(.*)/] ] }
end

作为一项工作,我得到了一个集合中所有节点的列表,并将我想要的事实变大。这可以正常工作,但只需要几百个节点就需要几分钟:

for server in $(mco find ); do 
   echo -e "${server}: $(mco inventory ${server}  \
     |grep ipaddress_ |egrep -v '_(lo|flan|dock)' \
     |awk '{print $3}' |sort |tr '\n' ' ')"
done