I am starting to find a pattern in my development and perhaps this might be
useful to others.
When I am doing a fairly complicated package, perhaps with templates for config
files I break them all up.
so I have (using apache for an example)
modules/apache/manifests/
/ init.pp
/ configure.pp
/ install.pp
/ service.pp
/ vhost.pp (apache/nginx specific
I think)
configure.pp likely has...
require => Class["apache::install"],
notify => Class["apache::service"],
install.pp likely will...
notify => Class["apache::service"],
service.pp likely will...
require => Class["apache::install"],
vhost.pp likely will...
require => Class["apache::install"],
notify => Class["apache::service"],
This has the following effects...
packages are installed first
service is restarted when configuration changes occur
I''ve been putting dependent packages into
modules/prerequisite/manifests and I have to ''include'' them if
I want to use them with notify/require - for example, apache w/ passenger
installation requires some other packages...
class prerequisite::apache {
$prerequisites = [ "apache2-prefork-dev", "libapr1-dev",
"libaprutil1-dev" ]
package { $prerequisites : ensure => "installed" }
}
thus I have to include prerequisite::apache'' somewhere to require it in
the install.pp
to keep things cleaner, I have abstracted an apache_server class which includes
this and other packages our apache servers will need and on a particular node, I
only have to include the apache_server class.
class apache_server {
include gems::passenger
include prerequisite::apache
include prerequisite::compiler
include prerequisite::compression
include prerequisite::ssl
}
Thus my node might be a bit simpler...
apache::configure { ''test.ttinet'':
port => 8080,
ip => "*",
ssl => false,
}
apache::vhost { "test2.ttinet":
port => 8080,
docroot => "/var/www/test2.ttinet",
ssl => false,
priority => 10,
serveraliases => [''test4'', ''test3''],
}
(obviously I have templates for apache2.conf, ports.conf, ssl.conf and any
amount of vhosts
--
Craig White ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ craig.white@ttiltd.com
1.800.869.6908 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ www.ttiassessments.com
Need help communicating between generations at work to achieve your desired
success? Let us help!
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to
puppet-users+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.