Initial commit
This commit is contained in:
		
							parent
							
								
									6e2bd788bf
								
							
						
					
					
						commit
						64a7f9dcf7
					
				| 
						 | 
				
			
			@ -0,0 +1,498 @@
 | 
			
		|||
#
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
bundle agent sympa
 | 
			
		||||
{
 | 
			
		||||
classes:
 | 
			
		||||
	"sympa_b";
 | 
			
		||||
 | 
			
		||||
vars:
 | 
			
		||||
	debian&sympa_b::	
 | 
			
		||||
		"lib_dir" string => "/usr/lib/sympa";
 | 
			
		||||
		"var_lib_dir" string => "/var/lib/sympa";
 | 
			
		||||
		"share_dir" string => "/usr/share/sympa";
 | 
			
		||||
		"conf_dir" string => "/etc/sympa";
 | 
			
		||||
		"sympa_conf" string => "$(conf_dir)/sympa/sympa.conf";
 | 
			
		||||
		"service_name" string => "sympa";
 | 
			
		||||
		"wwservice_name" string => "wwsympa";
 | 
			
		||||
		"wwsympa_socket" string => "/var/run/sympa/wwsympa.socket";
 | 
			
		||||
		"sympa_pl_cmd" string => "/usr/bin/sympa";
 | 
			
		||||
 | 
			
		||||
		"pkgs" slist => {
 | 
			
		||||
			"sympa"
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	debian&sympa_s::
 | 
			
		||||
		"install_dir" string => "/usr/local/sympa";
 | 
			
		||||
		"queue_cmd" string => "$(install_dir)/bin/queue";
 | 
			
		||||
		"bouncequeue_cmd" string => "$(install_dir)/bin/bouncequeue";
 | 
			
		||||
 | 
			
		||||
		"static_content_dir" string => "$(install_dir)/static_content";
 | 
			
		||||
		"css_dir" string => "$(static_content_dir)/css";
 | 
			
		||||
		"pictures_dir" string => "$(static_content_dir)/pictures";
 | 
			
		||||
 | 
			
		||||
	any::
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	"queue_cmd" string => "$(lib_dir)/bin/queue";
 | 
			
		||||
	"bouncequeue_cmd" string => "$(lib_dir)/bin/bouncequeue";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	"static_content_dir" string => "$(share_dir)/static_content";
 | 
			
		||||
	"pictures_dir" string => "$(static_content_dir)/pictures";
 | 
			
		||||
	"css_dir" string => "$(var_lib_dir)/css";
 | 
			
		||||
 | 
			
		||||
	"sendmail_aliases" string => "$(conf_dir)/sympa_transport";
 | 
			
		||||
 | 
			
		||||
	"postfix_master_cfg" string => readfile("$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/sympa/postfix-master-cfg.mustache");
 | 
			
		||||
	
 | 
			
		||||
	"apache_cfg" string => 
 | 
			
		||||
	"
 | 
			
		||||
	<IfModule mod_proxy_fcgi.c>
 | 
			
		||||
 | 
			
		||||
		Alias /css-sympa $(sympa.css_dir)
 | 
			
		||||
		Alias /pictures-sympa $(sympa.pictures_dir)
 | 
			
		||||
		Alias /static-sympa $(sympa.static_content_dir)
 | 
			
		||||
 | 
			
		||||
		<Directory $(sympa.static_content_dir)>
 | 
			
		||||
			Require all granted
 | 
			
		||||
		</Directory>
 | 
			
		||||
 | 
			
		||||
		<Directory $(sympa.css_dir)>
 | 
			
		||||
			Require all granted
 | 
			
		||||
		</Directory>
 | 
			
		||||
 | 
			
		||||
		<Directory $(sympa.pictures_dir)>
 | 
			
		||||
			Require all granted
 | 
			
		||||
		</Directory>
 | 
			
		||||
 | 
			
		||||
		<LocationMatch \\\"^/(?!.*-sympa)\\\">
 | 
			
		||||
			SetHandler \\\"proxy:unix:$(sympa.wwsympa_socket)|fcgi://\\\"
 | 
			
		||||
			Require all granted
 | 
			
		||||
		</LocationMatch>
 | 
			
		||||
 | 
			
		||||
	</IfModule>
 | 
			
		||||
 | 
			
		||||
	";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
reports:
 | 
			
		||||
#	"MUSTACHE: $(postfix_master_cfg_m)";
 | 
			
		||||
#	"RF: $(sys.workdir)/inputs/$(wmde_lib)/templates/sympa-postfix-master-cfg.mustache";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bundle agent sympa_init_db(cfg)
 | 
			
		||||
{
 | 
			
		||||
classes:                
 | 
			
		||||
        "run_backups" expression => isvariable("cfg[backup_dir]");
 | 
			
		||||
     
 | 
			
		||||
        run_backups::
 | 
			
		||||
                "sql_backup_exists" expression => fileexists("$(cfg[backup_dir])/sympa.sql");
 | 
			
		||||
 | 
			
		||||
methods:
 | 
			
		||||
	"any" usebundle => mysql_table_exists(@(cfg[db_settings]),"user_table");
 | 
			
		||||
 | 
			
		||||
	run_backups::
 | 
			
		||||
		"any" usebundle => restore_mysql_db(@(cfg[db_settings]),"$(cfg[backup_dir])/sympa.sql"),
 | 
			
		||||
               	depends_on => {"sympa_config_updated"},
 | 
			
		||||
		if => "sql_backup_exists&(!mysql_sympa_user_table_exists)",
 | 
			
		||||
		handle => "sympa_db_initialized";
 | 
			
		||||
commands:
 | 
			
		||||
	"!mysql_sympa_user_table_exists"::
 | 
			
		||||
		"$(sympa.sympa_pl_cmd)"
 | 
			
		||||
		args => "--health_check",
 | 
			
		||||
		handle => "sympa_db_initialized",
 | 
			
		||||
		depends_on => {"sympa_config_updated"};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bundle agent sympa_create_postfix_maps
 | 
			
		||||
{
 | 
			
		||||
classes:
 | 
			
		||||
	"sympa_run_postmap" expression => not(fileexists("$(sympa.sendmail_aliases).db"));
 | 
			
		||||
files:
 | 
			
		||||
	"$(sympa.sendmail_aliases)"
 | 
			
		||||
	create => "true",
 | 
			
		||||
	classes => if_repaired("sympa_run_postmap"),
 | 
			
		||||
	perms => mog("644","sympa","sympa"),
 | 
			
		||||
	handle => "sympa_sendmail_aliases_created";
 | 
			
		||||
 | 
			
		||||
	"$(sympa.conf_dir)/list_aliases.tt2"
 | 
			
		||||
	create => "true",
 | 
			
		||||
	copy_from => local_dcp("$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/sympa/list_aliases.tt2.mustache"),
 | 
			
		||||
	perms => mog("644","sympa","sympa");
 | 
			
		||||
	
 | 
			
		||||
commands:
 | 
			
		||||
	"sympa_run_postmap"::
 | 
			
		||||
		"$(postfix.postmap_cmd)"
 | 
			
		||||
		args => "$(sympa.sendmail_aliases)",
 | 
			
		||||
		classes => if_repaired("postfix_repaired"),
 | 
			
		||||
		depends_on => {"sympa_sendmail_aliases_created"};
 | 
			
		||||
reports:
 | 
			
		||||
	"create maps";
 | 
			
		||||
	"sympa_sendmail_aliases_repaired"::
 | 
			
		||||
		"POSTMAP CALL";
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bundle agent sympa_postfix_sql(cfg)
 | 
			
		||||
{
 | 
			
		||||
vars:
 | 
			
		||||
	"file[sympa_virtual_mailbox_maps]" string => "query = SELECT 'present' FROM list_table WHERE name_list='%u'
 | 
			
		||||
        or    name_list = replace('%u', '-request', '')
 | 
			
		||||
        or    name_list = replace('%u', '-editor', '')
 | 
			
		||||
        or    name_list = replace('%u', '-subscribe', '')
 | 
			
		||||
        or    name_list = replace('%u', '-unsubscribe', '')
 | 
			
		||||
";
 | 
			
		||||
 | 
			
		||||
	"idx" slist => getindices("file");
 | 
			
		||||
 | 
			
		||||
	"sql_dir" string => "$(postfix.cfg_dir)/sql";
 | 
			
		||||
	"$(idx)" string => "$(sql_dir)/$(idx).sql";
 | 
			
		||||
files:
 | 
			
		||||
	"$(sql_dir)/."
 | 
			
		||||
		create => "true",
 | 
			
		||||
		perms => m("755");
 | 
			
		||||
 | 
			
		||||
	"$(sql_dir)/$(idx).sql"
 | 
			
		||||
		create=>"true",
 | 
			
		||||
		perms=>m("644"), 
 | 
			
		||||
		content=>"
 | 
			
		||||
user = $(cfg[db_user])
 | 
			
		||||
password = $(cfg[db_pass])
 | 
			
		||||
hosts = $(cfg[db_host])
 | 
			
		||||
dbname = $(cfg[db_name])
 | 
			
		||||
$(file[$(idx)])
 | 
			
		||||
";
 | 
			
		||||
 | 
			
		||||
reports:
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bundle agent sympa_update_config(cfg)
 | 
			
		||||
{
 | 
			
		||||
vars:
 | 
			
		||||
	"default_settings" data => '{
 | 
			
		||||
		"aliases_db_type":"hash",
 | 
			
		||||
		"aliases_program":"$(postfix.postmap_cmd)",
 | 
			
		||||
		"sendmail_aliases":"$(sympa.sendmail_aliases)",
 | 
			
		||||
		"db_type":"$(cfg[db_settings][db_type])",
 | 
			
		||||
		"db_name":"$(cfg[db_settings][db_name])",
 | 
			
		||||
		"db_host":"$(cfg[db_settings][db_host])",
 | 
			
		||||
		"db_passwd":"$(cfg[db_settings][db_pass])",
 | 
			
		||||
		"db_user":"$(cfg[db_settings][db_user])"
 | 
			
		||||
 | 
			
		||||
	}';
 | 
			
		||||
 | 
			
		||||
	"settings_data" data => mergedata(@(default_settings),@(cfg[settings]));
 | 
			
		||||
 | 
			
		||||
	"idx" slist  => getindices(@(settings_data));
 | 
			
		||||
	"settings[$(idx)]" string => "$(settings_data[$(idx)])";
 | 
			
		||||
 | 
			
		||||
files:
 | 
			
		||||
	"$(sympa.sympa_conf)"
 | 
			
		||||
	edit_line => set_config_values("$(this.bundle).settings"),
 | 
			
		||||
	handle => "sympa_config_updated",
 | 
			
		||||
	classes => if_repaired("sympa_repaired"),
 | 
			
		||||
	depends_on => { "sympa_pkgs_installed" };
 | 
			
		||||
 | 
			
		||||
reports:
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bundle agent install_sympa_domain(domain,data)
 | 
			
		||||
{
 | 
			
		||||
vars: 
 | 
			
		||||
	"default_settings" data => '{
 | 
			
		||||
	}';
 | 
			
		||||
 | 
			
		||||
	"settings_data" data => mergedata(@(default_settings),@(data[settings]));
 | 
			
		||||
 | 
			
		||||
	"idx" slist  => getindices(@(settings_data));
 | 
			
		||||
	"settings[$(idx)]" string => "$(settings_data[$(idx)])";
 | 
			
		||||
	"settings[domain]" string => "$(domain)";
 | 
			
		||||
 | 
			
		||||
files:
 | 
			
		||||
	"$(sympa.conf_dir)/$(domain)/."
 | 
			
		||||
		create => "true",
 | 
			
		||||
		perms => m("755");
 | 
			
		||||
 | 
			
		||||
	"$(sympa.conf_dir)/$(domain)/robot.conf"
 | 
			
		||||
		perms => m("644"),
 | 
			
		||||
		copy_from => seed_cp("$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/sympa/robot.conf"),
 | 
			
		||||
		handle => "sympa_robot_$(domain)_ready";
 | 
			
		||||
 | 
			
		||||
	"$(sympa.conf_dir)/$(domain)/robot.conf"
 | 
			
		||||
		create => "true",
 | 
			
		||||
		perms => m("644"),  #"sympa","sympa"),
 | 
			
		||||
		edit_line => set_config_values("$(this.bundle).settings"),
 | 
			
		||||
		handle => "sympa_robots_created",
 | 
			
		||||
		classes => if_repaired("sympa_repaired"),
 | 
			
		||||
		depends_on => { "sympa_pkgs_installed","sympa_robot_$(domain)_ready" };
 | 
			
		||||
 | 
			
		||||
reports:
 | 
			
		||||
#	"INSTALL DOMAIN $(domain)";
 | 
			
		||||
#	"WWSYMuRL:$(data[settings][wwsympa_url])";
 | 
			
		||||
#	"OUT: $(settings)";
 | 
			
		||||
#	"JO: $(jo)";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bundle agent install_sympa_domains(dl)
 | 
			
		||||
{
 | 
			
		||||
vars:
 | 
			
		||||
	"idx" slist => getindices(@(dl));
 | 
			
		||||
methods:
 | 
			
		||||
	"any" usebundle => install_sympa_domain("$(idx)",@(dl[$(idx)]));
 | 
			
		||||
 | 
			
		||||
reports:
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bundle agent install_sympa(cfg)
 | 
			
		||||
{
 | 
			
		||||
vars:
 | 
			
		||||
#	"cfg_domains" data => @(cfg[domains]);
 | 
			
		||||
	"domains_idx" slist => getindices(@(cfg[domains]));
 | 
			
		||||
#	"cfg_domains" slist => {"a","b","c"};
 | 
			
		||||
methods:
 | 
			
		||||
	"any" usebundle => wmde_install_packages(@(sympa.pkgs),"sympa");
 | 
			
		||||
	"any" usebundle => sympa_update_config(@(cfg));
 | 
			
		||||
	"any" usebundle => sympa_init_db(@(cfg));
 | 
			
		||||
 | 
			
		||||
	"any" usebundle => wmde_service("$(sympa.service_name)","sympa_kept","sympa_repaired"),
 | 
			
		||||
		depends_on => {
 | 
			
		||||
			"sympa_pkgs_installed",
 | 
			
		||||
			"sympa_config_updated"
 | 
			
		||||
		};
 | 
			
		||||
	"any" usebundle => wmde_service("$(sympa.wwservice_name)","sympa_kept","sympa_repaired"),
 | 
			
		||||
		depends_on => {
 | 
			
		||||
			"sympa_pkgs_installed",
 | 
			
		||||
			"sympa_config_updated",
 | 
			
		||||
			"sympa_robots_created"
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
#	"any" usebundle => install_sympa_domain("@(cfg[domains][$(domains_idx)])");
 | 
			
		||||
	"any" usebundle => install_sympa_domains(@(cfg[domains2]));
 | 
			
		||||
reports:
 | 
			
		||||
#	"IDX $(domains_idx)";
 | 
			
		||||
#	"DOMCONF: $(cfg[$(idx)])";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bundle agent install_sympa_src(cfg)
 | 
			
		||||
{
 | 
			
		||||
classes:
 | 
			
		||||
	"run_backups" expression => isvariable("cfg[backup_dir]");
 | 
			
		||||
 | 
			
		||||
	run_backups::
 | 
			
		||||
		"sql_backup_exists" expression => fileexists("$(cfg[backup_dir])/sympa.sql");
 | 
			
		||||
	
 | 
			
		||||
methods:
 | 
			
		||||
	"any" usebundle => mysql_table_exists(@(cfg),"user_table");
 | 
			
		||||
 | 
			
		||||
	"run_backups&sql_backup_exists&(!mysql_sympa_user_table_exists)"::
 | 
			
		||||
		"any" usebundle => restore_mysql_db(@(cfg),"$(cfg[backup_dir])/sympa.sql");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
vars:
 | 
			
		||||
	debian::
 | 
			
		||||
		"pkgs" slist => {
 | 
			
		||||
			"clang",
 | 
			
		||||
			"gcc",
 | 
			
		||||
			"make",
 | 
			
		||||
			"mhonarc",
 | 
			
		||||
			"libdbd-mysql-perl",
 | 
			
		||||
			"spawn-fcgi",
 | 
			
		||||
			"libdbd-mysql-perl",
 | 
			
		||||
			"libdatetime-format-mail-perl",
 | 
			
		||||
			"libmime-encwords-perl",
 | 
			
		||||
			"libmime-lite-html-perl",
 | 
			
		||||
			"cpanminus"
 | 
			
		||||
		};
 | 
			
		||||
		"cfg_file" string => "/etc/sympa/sympa.conf";
 | 
			
		||||
		"log_file" string => "/var/log/sympa.log";
 | 
			
		||||
		"syslog_cfg" string => "/etc/rsyslog.d/sympa.conf";
 | 
			
		||||
		"syslog_service" string => "rsyslog";
 | 
			
		||||
	freebsd::
 | 
			
		||||
		"pkgs" slist => {};
 | 
			
		||||
		"cfg_file" string => "/usr/local/etc/sympa/sympa.conf";
 | 
			
		||||
		"log_file" string => "/var/log/sympa.log";
 | 
			
		||||
		"syslog_cfg" string => "/etc/syslog.d/sympa.conf";
 | 
			
		||||
		"syslog_service" string => "syslogd";
 | 
			
		||||
	
 | 
			
		||||
	any::
 | 
			
		||||
	"src_tgz" string => "sympa-$(cfg[version]).tar.gz";
 | 
			
		||||
	"extract_dir" string => "$(sys.workdir)/data/agent/sympa";
 | 
			
		||||
	"compile_dir" string => "$(extract_dir)/sympa-$(cfg[version])";
 | 
			
		||||
 | 
			
		||||
	"configure_options" string => "--prefix $(sympa.install_dir)";
 | 
			
		||||
 | 
			
		||||
	"sympa_pl_cmd" string => "$(sympa.install_dir)/bin/sympa.pl";
 | 
			
		||||
 | 
			
		||||
classes:
 | 
			
		||||
	"compile_and_install" expression => not(fileexists("$(compile_dir)/installed.txt"));
 | 
			
		||||
 | 
			
		||||
commands:
 | 
			
		||||
	'if grep -q sympa /etc/group ; then echo "+sympa_group_exists"; else echo "-sympa_group_exists" ; fi'
 | 
			
		||||
	module => "true",
 | 
			
		||||
	inform => "false",
 | 
			
		||||
	contain => wmde_cmd_useshell;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	debian&(!sympa_group_exists)::
 | 
			
		||||
		"/usr/sbin/groupadd"
 | 
			
		||||
		args => "sympa",
 | 
			
		||||
		handle => "sympa_group_created";
 | 
			
		||||
	debian&sympa_group_exists::
 | 
			
		||||
		"/usr/bin/true"
 | 
			
		||||
		inform => "false",
 | 
			
		||||
		handle => "sympa_group_created";
 | 
			
		||||
 | 
			
		||||
methods:
 | 
			
		||||
	"any" usebundle => wmde_install_packages(@(pkgs),"sympabuild");
 | 
			
		||||
 | 
			
		||||
files:
 | 
			
		||||
	"$(extract_dir)/."
 | 
			
		||||
	create => "true",
 | 
			
		||||
	handle => "sympa_extract_dir_created";
 | 
			
		||||
 | 
			
		||||
users:
 | 
			
		||||
	"sympa"
 | 
			
		||||
	policy => "present",
 | 
			
		||||
	description => "Sympa System",
 | 
			
		||||
	home_dir => "$(sympa.install_dir)",
 | 
			
		||||
	group_primary => "sympa",
 | 
			
		||||
	depends_on => {"sympa_group_created"},
 | 
			
		||||
	shell => "/bin/bash";
 | 
			
		||||
 | 
			
		||||
methods:
 | 
			
		||||
	"any" usebundle => download_and_untar (
 | 
			
		||||
			"sympa",
 | 
			
		||||
			"$(def.hub_public_dir)/$(src_tgz)",
 | 
			
		||||
			"$(sys.workdir)/data/public/$(src_tgz)",	
 | 
			
		||||
			"$(extract_dir)",
 | 
			
		||||
			"$(compile_dir)/configure"	
 | 
			
		||||
		), 
 | 
			
		||||
		depends_on => {"sympabuild_pkgs_installed","sympa_extract_dir_created"},
 | 
			
		||||
		handle => "sympa_downloaded";
 | 
			
		||||
 | 
			
		||||
commands:
 | 
			
		||||
	compile_and_install::
 | 
			
		||||
		"cd $(compile_dir) && ./configure $(configure_options) && make && make install && cpanm --installdeps --with-recommends -n . && touch installed.txt"
 | 
			
		||||
		contain => wmde_cmd_useshell,
 | 
			
		||||
		depends_on => {"sympa_downloaded"},
 | 
			
		||||
		handle => "sympa_installed";
 | 
			
		||||
 | 
			
		||||
	!compile_and_install::
 | 
			
		||||
		"/usr/bin/true"
 | 
			
		||||
		inform => "false",
 | 
			
		||||
		handle => "sympa_installed";
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
vars:
 | 
			
		||||
	"settings[domain]" string => "$(cfg[domain])";
 | 
			
		||||
	"settings[listmaster]" string => "$(cfg[listmaster])";
 | 
			
		||||
	"settings[db_type]" string => "$(cfg[db_type])";
 | 
			
		||||
	"settings[db_host]" string => "$(cfg[db_host])";
 | 
			
		||||
	"settings[db_user]" string => "$(cfg[db_user])";
 | 
			
		||||
	"settings[db_passwd]" string => "$(cfg[db_pass])";
 | 
			
		||||
	"settings[wwsympa_url]" string => "$(cfg[wwsympa_url])";
 | 
			
		||||
	"settings[listmaster]" string => "$(cfg[listmaster])";
 | 
			
		||||
	"settings[sendmail_aliases]" string=> "$(cfg[sendmail_aliases])";
 | 
			
		||||
	"settings[aliases_program]" string=> "$(cfg[aliases_program])";
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
files:
 | 
			
		||||
	"$(cfg_file)"
 | 
			
		||||
	edit_line => set_config_values("$(this.bundle).settings"),
 | 
			
		||||
	handle => "sympa_config_edited_old",
 | 
			
		||||
	classes => if_repaired("sympa_config_changed"),
 | 
			
		||||
	depends_on => { "sympa_installed" };
 | 
			
		||||
 | 
			
		||||
commands:
 | 
			
		||||
	"sympa_config_changed|(!mysql_sympa_user_table_exists)"::
 | 
			
		||||
		"$(sympa.sympa_pl_cmd)"
 | 
			
		||||
		args => "--health_check",
 | 
			
		||||
		depends_on => {"sympa_config_edited_old"};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Sympa Logs
 | 
			
		||||
files:
 | 
			
		||||
	"$(log_file)"
 | 
			
		||||
	create=>"true",
 | 
			
		||||
	perms=>m("644");
 | 
			
		||||
 | 
			
		||||
	"$(syslog_cfg)"
 | 
			
		||||
	create=>"true",
 | 
			
		||||
	content=>"local1.* -/var/log/sympa.log
 | 
			
		||||
	",
 | 
			
		||||
	handle => "sympa_syslog_cfg_ready",
 | 
			
		||||
	classes => if_repaired("sympa_syslog_cfg_repaired");
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
	sympa_syslog_cfg_repaired::
 | 
			
		||||
		"$(syslog_service)"
 | 
			
		||||
		depends_on => {"sympa_syslog_cfg_ready"},
 | 
			
		||||
		service_policy=>"restart";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Configure Backup stuff
 | 
			
		||||
files:
 | 
			
		||||
	run_backups::
 | 
			
		||||
		"$(cfg[backup_dir])/."
 | 
			
		||||
		create => "true";
 | 
			
		||||
methods:
 | 
			
		||||
	run_backups::
 | 
			
		||||
		"any" usebundle => create_mysql_backup_cron_job(@(cfg),"$(cfg[backup_dir])/sympa.sql","user_table","true");
 | 
			
		||||
	!run_backups::
 | 
			
		||||
		"any" usebundle => create_mysql_backup_cron_job(@(cfg),"$(cfg[backup_dir])/sympa.sql","user_table","false");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		
 | 
			
		||||
reports:
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
#--- [% list.name %]@[% list.domain %]: list transport map created at [% date %]
 | 
			
		||||
[% list.name %]@[% list.domain %] sympa:[% list.name %]@[% list.domain %]
 | 
			
		||||
[% list.name %]-request@[% list.domain %] sympa:[% list.name %]-request@[% list.domain %]
 | 
			
		||||
[% list.name %]-editor@[% list.domain %] sympa:[% list.name %]-editor@[% list.domain %]
 | 
			
		||||
#[% list.name %]-subscribe@[% list.domain %] sympa:[% list.name %]-subscribe@[%list.domain %]
 | 
			
		||||
[% list.name %]-unsubscribe@[% list.domain %] sympa:[% list.name %]-unsubscribe@[% list.domain %]
 | 
			
		||||
[% list.name %][% return_path_suffix %]@[% list.domain %] sympabounce:[% list.name %]@[% list.domain %]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
sympa      unix  -       n       n       -       -       pipe
 | 
			
		||||
  flags=hqRu null_sender= user=sympa argv=$(queue_cmd) \dollar{recipient}
 | 
			
		||||
sympabounce unix -       n       n       -       -       pipe
 | 
			
		||||
  flags=hqRu null_sender= user=sympa argv=$(bouncequeue_cmd) \dollar{user}@\dollar{domain}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
user = {{db_user}}
 | 
			
		||||
password = {{db_pass}}
 | 
			
		||||
hosts = {{db_host}}
 | 
			
		||||
dbname = {{db_name}}
 | 
			
		||||
query = SELECT 'present' FROM list_table WHERE name_list='%u'
 | 
			
		||||
        or    name_list = replace('%u', '-request', '')
 | 
			
		||||
        or    name_list = replace('%u', '-editor', '')
 | 
			
		||||
        or    name_list = replace('%u', '-subscribe', '')
 | 
			
		||||
        or    name_list = replace('%u', '-unsubscribe', '')
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
#
 | 
			
		||||
# Managed by CFEngine
 | 
			
		||||
#
 | 
			
		||||
		Loading…
	
		Reference in New Issue