服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

木偶:检查一组variables

编辑:我想出了我认为是这个最好的方法。 感谢人们回答我的问题 – 一路上有所帮助。 我要发布我的解决scheme,以便其他人可以find它,如果他们想要的。 原问题: 我想用puppet自动configuration一些我们的NFS文件系统。 但是,我希望清单能够确保在正确的networking上拥有知识产权。 Puppet通过interfaces和ipaddress_***事实有助于提供关于机器分配的IP的事实。 问题是我需要检查所有的接口(我宁愿不要假设它们是如何连接的)。 问题1:木偶可以通过事实列表循环吗? 例如: for $if in $interfaces { //do something } 问题2:如果Puppet能够做到这一点,是否有一种方法来评估一个string作为一个variables。 interfaces提供了一个非常好的方法来知道有多lessipaddress_***和network_***variables,但即使我可以循环它的值,我需要做一些事情: for $if in $interfaces { $net_var = eval("network_${if}") if $net_var = /^192\.168\.2\.0$/ { //do something } } 这可能吗? 我是否完全错误(对木偶有点新鲜)? 我最终做了什么: Puppet允许您为模块定义自定义分析器函数。 这些自定义函数只是ruby,所以你可以有效地做任何你想要的内容,包括循环。 你把它们放在<module_dir>/lib/puppet/parser/functions/ 。 为了做我想做的,我创build了<module_dir>/lib/puppet/parser/functions/has_network.rb以下内容: #has_network.rb require 'ipaddr' module Puppet::Parser::Functions newfunction(:has_network, :type => […]