我正在为我的环境在木偶上滚动 – 我希望有一个基于模块本身是否包含基于命名约定的文件的条件file资源。
所以在视觉上,假设一个名为“mysql”的模块,它的布局:
mysql/ /files /etc/ my.cnf my.hostname1.cnf my.hostname2.cnf /manifests init.pp ...
所以我想要块来validation模块的资源是否存在,并采取相应的行动,伪造:
file { '/etc/my.cnf': if -f 'puppet:///mysql/etc/my.$hostname.cnf' { source => 'puppet:///mysql/etc/my.$hostname.cnf' } else { source => 'puppet:///mysql/etc/my.cnf' } }
这样一来,不必pipe理一个csv文件或.pp文件与主机特定的情况下声明 – 这是可能的吗?
http://docs.puppetlabs.com/references/2.6.11/type.html#file指定你可以做file{'/etc/my.cnf': source => [ "puppet:///mysql/etc/my.$hostname.cnf" , "puppet:///mysql/etc/my.cnf" ] }