木偶 – 任何方式从木偶主人(主机)复制客户端软件预定义的自定义configuration文件?

到目前为止,我一直在使用什么傀儡来编写很多有趣的代码,到目前为止,它看起来可以完成我所需要的大部分工作。

有一件事我没有find在文档(与一些search)是如何(如果可能的话)有预先build立的configuration文件在服务器上使用。 例如:

我用木偶来安装httpd。 现在我们有客户端上的apache。 那么现在httpd.conf需要一些定制和特定的设置。 我需要在puppet master上使用httpd.conf。 我怎样才能从木偶大师那里得到它?

我去IRC频道玩木偶,发现这可以用source属性来完成。

file { "/etc/firewall.sh": owner => root, group => root, mode => 550, source => "puppet:///files/iptables.sh" } 

文件的位置在/etc/puppet/fileserver.conf中设置 – configuration很简单。

内容标记而不是源可以用来将文字string放入文件中。

如果我是你,我会使用puppet:///modules/<module name>/iptables.sh格式。 这样一切都只限于模块,并且你不需要一个fileserver.conf。 puppet:///modules/*是免费的。

使用静态文件是一个好的开始。 从长远来看,使用模板更好,更灵活。

http://docs.puppetlabs.com/guides/templating.html

 $hostname = 'your.host.com' $portnum = 8080 file { '/etc/lighttpd/lighttpd.conf': ensure => present, content => template('lighttpd/lighttpd.conf.erb'), owner => 'root', group => 'root', mode => 0644, } 

这与.erb模板结合使用variables$ hostname和$ portnum创build所需的configuration文件。

 $HTTP["host"] =~ "^<%= hostname %>" { proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => <%= portnum %> ) ...