Puppet - Any way to copy predefined custom configuration files for software on clients from the puppet master (host)?
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?
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.
If I were you, I'd use the puppet:///modules/<module name>/iptables.sh
format. That way everything is confined to module and and you don't need a fileserver.conf. The puppet:///modules/*
is free.