Role to install Sympa. It doesn't support robots for now, this feature will be added later.
Supported platforms are:
- Arch Linux
- CentOS 7
- CentOS 8
- Debian 8 (Jessie)
- Debian 9 (Stretch)
- Debian 10 (Buster)
- Fedora 35
- Fedora 36
- openSUSE Leap 15
- Ubuntu 16 (Xenial)
- Ubuntu 18 (Bionic)
- Ubuntu 20 (Focal)
- Ubuntu 22 (Jammy)
Local MTA. This is installed by most distributions.
Nginx needs to be installed before running the Sympa role, as the Nginx user is referred by the wwsympa service unit.
This role doesn't cover the installation of Exim. However, it is recommended to disable the newaliases wrapper:
sympa_config_aliases_program: none
The Sympa role provides a snippet for Nginx in the variable sympa_web_nginx_snippet which can be included in a virtual host configuration file.
The FCGI settings can be adjusted with the variables sympa_web_nginx_read_timeout and sympa_web_nginx_fcgi_options.
With a lots of lists and a fresh WWSympa instance it takes a while to generate the list overview:
# raise FCGI timeout to 3 minutes
sympa_web_nginx_read_timeout: 180
Custom scenari can be installed from files listed in the sympa_scenari variable:
sympa_scenari:
- scenari/visibility.identified
Included in the role are the following scenari:
- visibility.identified (#1140)
The privileges are listed in the configuration file /etc/sympa/edit_list.conf
.
You can override or add privileges through the variable sympa_edit_list_privileges:
sympa_edit_list_privileges:
- name: process_archive
roles:
- owner
- privileged_owner
privilege: hidden
That prevents owners to enable or disable archiving for a list.
The roles can also given as comma-separated list, e.g owner,privileged_owner
.
In order to the necessary ODBC DBI driver, set the sympa_install_odbc_driver variable to "yes".
Default time interval between two scheduled synchronizations.
Default time interval to trigger a synchronization by an action, e.g. distributing an email.
The database configuration for Sympa is required.
Example:
sympa_database:
type: mysql
name: sympa
user: sympa
password: nevairbe
This is either a list of listmasters or a single value for the listmaster.
If no value is provided, listmaster
will be joined with a @ to the
sympa_domain variable.
For example: [email protected].
You can pick from different installation methods through the sympa_installation_method variable:
- *source*: install from tarball
- *package*: install from distribution package
- *repository*: install from Git repository
- *sync*: install from directory on the controller
- *none*: skip installation (only for special cases)
Default is source.
Directory for the Sympa sources. The tarball will be also downloaded to this directory if source installation method is used.
Installation directory. Defaults to /usr/local/sympa
.
This applies to all installation methods except package:
sympa_build_options: setuid_fcgi: false setuid_queue: false
setuid_fcgi and setuid_queue determine whether the setuid flag is applied to the FCGI wrapper and the queue program, respectively.
There is no reason to apply these setuid flags, especially as setuid binaries are a security risk.
Sympa version, defaults to 6.2.72.
Sympa download location. The default value includes sympa_source_version, e.g. https://github.com/sympa-community/sympa/releases/download/6.2.70/sympa-6.2.72.tar.gz.
List of patches which will be applied before building, e.g.:
sympa_source_patches:
- patches/soap-api-access-fix.diff
- patches/disable-setuid-1032.diff
Git repository, defaults to https://github.com/sympa-community/sympa.git.
Git branch or tag, defaults to main
.
Directory on the Ansible controller with the Sympa sources.
Location of the global file with the list aliases. Defaults to /etc/mail/sympa/aliases
.
Program to update the hash file for the aliases. Select postalias
for using
Sympa with Postfix MTA.
Additional fields for the subscriber and user tables can be configured with the sympa_config_additional_subscriber_fields and sympa_config_additional_user_fields variables.
sympa_config_additional_subscriber_fields: unsubscribe_link
You have to create these fields separately, e.g.:
- name: Add unsubscribe_link field to subscriber table
postgresql_query:
db: sympa
query: 'ALTER TABLE subscriber_table ADD COLUMN IF NOT EXISTS
unsubscribe_link text'
become: yes
become_user: postgres
vars:
ansible_ssh_pipelining: true
Maximum size of an incoming message in bytes.
Sympa's default is 5242880 (5 MB).
Determines how can request or create a list. Default value is public_listmaster.
Change this to listmaster in order to prevent users to request a list:
sympa_config_create_list: listmaster
Whether to allow the user to delete its own account from the web interface. Default value is false.
sympa_allow_account_deletion: true
Configures the default language:
sympa_config_lang: de
Configures the supported languages:
sympa_config_supported_lang: de,en_US
You can also use a list instead of a comma separated string.
You can enable personalization for all lists with:
sympa_config_merge_feature: true
This is not recommended though unless all lists use that feature. You can enable it for individual lists in the list configuration.
Set this variable if you use a different domain for the web interface than sympa_domain.
Path component of URL for the web interface without slash. Default is
sympa
.
Whether WWSympa is enabled (default).
Protocol for WWSympa URL. Defaults to https
.
Number of FCGI instances (default: 5)
Recommended value for development instances is 2.
Title for the web interface.
Whether SOAP is enabled (disabled by default).
Protocol for SOAP URL. Defaults to https
.
Number of FCGI instances (default: 2)
None.
- hosts: server
roles:
- { role: racke.sympa }
GPL2
This role was created in 2020 by Stefan Hornburg (Racke).