class sympa::server( $authentication_info_url = 'https://wiki.mageia.org/en/Mageia.org_user_account' ) { include sympa::variable # perl-CGI-Fast is needed for fast cgi # perl-Socket6 is required by perl-IO-Socket-SSL # (optional requirement) package {['sympa', 'sympa-www', 'perl-CGI-Fast', 'perl-Socket6']: } # sympa script start 5 differents script, I am not # sure that puppet will correctly handle this service { 'sympa': subscribe => [ Package['sympa'], File['/etc/sympa/sympa.conf']] } $pgsql_password = extlookup('sympa_pgsql','x') $ldap_password = extlookup('sympa_ldap','x') postgresql::remote_db_and_user { 'sympa': password => $pgsql_password, description => 'Sympa database', } File { require => Package['sympa'], } $vhost = $sympa::variable::vhost file { '/etc/sympa/sympa.conf': # should be cleaner to have it root owned, but puppet do not support acl # and in any case, config will be reset if it change owner => 'sympa', group => 'apache', mode => '0640', content => template('sympa/sympa.conf'), } file { '/etc/sympa/auth.conf': content => template('sympa/auth.conf'), notify => Service['httpd'], } include apache::mod::fcgid apache::webapp_other { 'sympa': webapp_file => 'sympa/webapp_sympa.conf', } apache::vhost::redirect_ssl { $sympa::variable::vhost: } apache::vhost::base { $sympa::variable::vhost: use_ssl => true, content => template('sympa/vhost_ml.conf'), } git::snapshot { '/etc/sympa/web_tt2': source => "git://git.${::domain}/web/templates/sympa", } file { ['/etc/sympa/lists_xml/', '/etc/sympa/scenari/', '/etc/sympa/data_sources/', '/etc/sympa/search_filters/']: ensure => directory, purge => true, recurse => true, force => true, } file { '/etc/sympa/scenari/subscribe.open_web_only_notify': source => 'puppet:///modules/sympa/scenari/open_web_only_notify'; '/etc/sympa/scenari/unsubscribe.open_web_only_notify': source => 'puppet:///modules/sympa/scenari/open_web_only_notify'; '/etc/sympa/scenari/create_list.forbidden': source => 'puppet:///modules/sympa/scenari/forbidden'; '/etc/sympa/topics.conf': source => 'puppet:///modules/sympa/topics.conf'; } # add each group that could be used in a sympa ml either as # - owner # - editor ( moderation ) sympa::datasource::ldap_group { 'mga-sysadmin': } sympa::datasource::ldap_group { 'mga-ml_moderators': } # directory that will hold the list data # i am not sure of the name ( misc, 09/12/10 ) file { '/var/lib/sympa/expl/': ensure => directory, owner => 'sympa', } file { '/etc/postfix/master.cf': content => template('postfix/primary_master.cf'); '/etc/postfix/sympa_aliases': content => template('postfix/sympa_aliases'); '/etc/postfix/transport_regexp': content => template('postfix/transport_regexp'); } }