[Puppet Users] courier imap/pop not refreshing

Christopher Wood
Fri, 13 Jan 2012 18:08:49 -0000

The courier-imap (and courier-pop) services on my lab VMs don''t
actually get refreshed after puppet drops in the config files. I suspect
it''s something about the lack of /etc/init.d/courier-pop status,
coupled with that I have the wrong pattern. Could anybody offer any hints of
what I''m doing wrong, or what would be the correct pattern for these
processes?

Both the imap and pop manifests have the same structure, so I''ll use
pop in this example. The platform is Debian Squeeze, and puppet 2.6.2. I get the
same behaviour in Ubuntu 10.04 running puppet 2.6.2.


Here is the process running after the post-instantiation puppet run, with
default Courier values:

root      4931  0.0  0.0   1880   360 ?        S    12:41   0:00
/usr/sbin/courierlogger -pid=/var/run/courier/pop3d.pid -start -name=pop3d
/usr/sbin/couriertcpd -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup
-address=0 110 /usr/lib/courier/courier/courierpop3login
/usr/lib/courier/courier/courierpop3d Maildir
root      4932  0.0  0.0   1984   612 ?        S    12:41   0:00  \_
/usr/sbin/couriertcpd -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup
-address=0 110 /usr/lib/courier/courier/courierpop3login
/usr/lib/courier/courier/courierpop3d Maildir


However, the config file was correctly installed by puppet, having my
non-default values:

$ grep -i max /etc/courier/pop3d
##NAME: MAXDAEMONS:0
#  Maximum number of POP3 servers started
MAXDAEMONS=200
##NAME: MAXPERIP:4
#  Maximum number of connections to accept from the same IP address
MAXPERIP=25


Here''s a snip from the manifest:

$pkg1 = ''courier-pop''

$popd = ''/etc/courier/pop3d''
$popdsource = "$filesource/$popdfile"

$service = ''courier-pop''

$restarter = ''/usr/local/sbin/restart_courier-pop.sh''
$restartertemplate = "$classname/restart_courier.sh.erb"

$mfile = ''/etc/monit/conf.d/courier-pop''
$mfilesource = "$filesource/monit__courier-pop"

package { $pkg1:
  ensure => installed,
}

file { $popd:
  source => $popdsource,
  owner => ''root'',
  group => ''root'',
  mode => 644,
  require => Package[$pkg1],
}

service { $service:
  require => File[$popd],
  ensure => running,
  hasrestart => true,
  hasstatus => false,
  pattern => ''pop3d'',
  subscribe => File[$popd],
}