Puppet – How to Copy Predefined Custom Configuration Files from Puppet Master

centoslinuxpuppet

I have been having a lot of fun coding with what puppet I have had experience with so far, and so far it looks like it can do most of what I need it to do.

One thing I am not finding in the documentation (with some searching) is how to (if it is possible) have pre-built configuration files to use on the servers. For example:

I use puppet to install httpd. Now we have apache on the client. Well now the httpd.conf needs some customization and specific settings. I have the httpd.conf I need to use on the puppet master. How do I get it from the puppet master to the client?

Best Answer

I went on the IRC channel for puppet, and found out this can be done with the source attribute.

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

the location of files is set in /etc/puppet/fileserver.conf - the configuration there is straightforward.

The content tag instead of source can be used to put a literal string into the file.