Hi all,
There has been a module for using Puppet[1] from within Cfengine for
a long time now, but I only just now got around to writing up a how-
to on it:
http://reductivelabs.com/projects/puppet/documentation/
cfengine_module.html
Basically, you can reuse your existing class structure within Puppet,
since the module will load all Puppet classes that are set within
Cfengine.
This is useful because Puppet supports many high-level types that are
difficult to manage within Cfengine, like users, groups, and
packages, and it also supports defined types that resemble functions
but create first-class Puppet types. For instance, this is how I
create the Apache configurations for my Trac sites:
define tracsite(path = "/etc/apache2/trac", owner) {
file { "trac-$name":
path => "/etc/apache2/trac/$name.conf",
owner => $owner,
group => root,
mode => 644,
require => file[apacheconf],
content => template("tracsite.erb"),
notify => service[apache2]
}
symlink { "tracsym-$name":
path => "/export/docroots/reductivelabs.com/cgi-bin/$name.cgi",
ensure => "/usr/share/trac/cgi-bin/trac.cgi"
}
}
Then I can call it as many times as I want:
tracsite { puppet: owner => apache }
This is actually an internal type that I use from within a larger
definition that actually creates the Trac database and configuration;
you can find it here:
http://prmweb.hezmatt.org/recipes/show/4
Feel free to contact me with any questions, or you can join the user
list[2] or #puppet in irc.freenode.net and look for me as lkanies (or
'laktop', sometimes).
1 - http://reductivelabs.com/projects/puppet
2 - https://mail.madstop.com/mailman/listinfo/puppet-users
--
Luke Kanies
http://madstop.com
615-594-8199
_______________________________________________
Help-cfengine mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-cfengine