Class mailman::mailman
In: /modules/mailman/manifests/init.pp
Parent:

Resources

Resources

Exec["create_mailman_site_list"]
   require => File["/usr/lib/mailman/Mailman/mm_cfg.py"]
   command => /usr/lib/mailman/bin/newlist -q $mailman_site_list $mailman_site_list@$default_email_host $uniqueid && /usr/lib/mailman/bin/change_pw -l $mailman_site_list
   creates => /var/lib/mailman/lists/$mailman_site_list/config.pck
   logoutput => true

Create the mandatory site list. The password is immediately changed, and appears in the puppet logs, so make sure unprivileged users can‘t read them, or change it again.

File["/usr/lib/mailman/Mailman/mm_cfg.py"]
   content => template("mailman/mm_cfg.py.erb")
   owner => "root"
   group => "mailman"
   mode => "0640"
   notify => Service["mailman"]

Main Mailman configuration file (well, python script)

Package["mailman"]
   ensure => installed

Main package and service it provides

Service["mailman"]
   require => Exec["create_mailman_site_list"]
   enable => true
   ensure => running
   hasstatus => true

[Validate]