systemli.schleuder
ansible-role-schleuder
Installez et maintenez un service schleuder et ses listes schleuder.
Qu'est-ce qui est installé lors de l'exécution d'Ansible ?
Ce rôle configurera schleuder, schleuder-cli, et schleuder-web par défaut.
L'interface web est accessible via localhost:3000 et vous pouvez vous connecter avec les identifiants par défaut de schleuder ("root@localhost" - "slingit!").
En outre, vous pouvez installer le plugin de billetterie gitlab schleuder et lier vos listes schleuder à une instance gitlab. Pour cela, vous devez définir schleuder_install_gitlab_ticket_plugin: True
dans votre fichier de variables.
Qu'est-ce qui est encore nécessaire ?
Vous devez configurer et installer un transport de mail sur le serveur où Schleuder est exécuté. De plus, vous devez avoir un serveur web fonctionnel avec un vhost pointant vers votre interface schleuder-web et son port.
Veuillez consulter la documentation de schleuder pour des informations supplémentaires.
Comment les nouveaux administrateurs de listes peuvent-ils gérer leurs listes ?
Si une clé publique de l'administrateur de la liste est présente, ce rôle/schleuder vous informera de la création de la liste.
Les administrateurs de listes schleuder peuvent demander leur mot de passe en se connectant via l'interface web, après que leur liste ait été créée.
Variables du rôle
### Définir les playbooks à exécuter :
schleuder_install_web: True
schleuder_install_cli: True
schleuder_install_gitlab_ticket_plugin: False
### Variables schleuder :
schleuder_schleuder_user: "schleuder"
schleuder_gpg_use_tor: True
schleuder_gpg_tor_keyserver: "hkp://zkaan2xfbuxia2wpf7ofnkbz6r5zdbbvxbunvp5g2iebopbfc4iqmbad.onion"
schleuder_admin_keys_path: "/var/lib/schleuder/adminkeys"
schleuder_lists: []
#- name: [email protected]
# admin: [email protected]
# # assurez-vous de copier la clé publique de l'administrateur de la liste dans
# # files/schleuder/adminkeys/{{ name }}_{{ admin }}.pub
# # sinon, définissez admin_pubkey_present sur false
# # ---
# send_list_key: True
# present: True
# # ---
# admin_pubkey_present: True
# # si admin_pubkey_present est défini sur false
# la liste schleuder sera créée, mais ne sera pas fonctionnelle
### Variables schleuder-web :
schleuder_schleuder_web_repo: https://0xacab.org/schleuder/schleuder-web
schleuder_schleuder_web_home: "/var/www/schleuder-web"
schleuder_schleuder_web_user: schleuder-web
schleuder_schleuder_web_path: "{{ schleuder_schleuder_web_home }}/schleuder-web"
schleuder_schleuder_web_git_update: False
schleuder_schleuder_web_systemd_path: "/etc/systemd/system/schleuder-web.service"
schleuder_schleuder_web_environment_vars_path: "/etc/default/schleuder-web"
# définissez sur false pour que le serveur rails écoute uniquement sur localhost
schleuder_schleuder_web_allow_access_from_outside: True
### Variables du plugin de billetterie gitlab schleuder :
schleuder_gitlab_plugin_repo: https://0xacab.org/schleuder/schleuder-gitlab-ticketing
schleuder_gitlab_plugin_path: "/opt/local/gitlab-ticketing"
schleuder_gitlab_plugin_git_update: False
### Variables schleuder-cli :
schleuder_cli_path: "/root/.schleuder-cli"
###### Section Fichier
### schleuder/schleuder.yml.j2
schleuder_lists_dir: "/var/lib/schleuder/lists"
schleuder_listlogs_dir: "/var/lib/schleuder/lists"
schleuder_plugins_dir: "/etc/schleuder/plugins"
schleuder_filters_dir: "/usr/local/lib/schleuder/filters"
schleuder_log_level: "warn"
schleuder_keyserver: "hkps://keys.openpgp.org"
schleuder_superadmin: "root@localhost"
schleuder_smtp_settings:
address: localhost
port: 25
#domain:
#enable_starttls_auto:
#openssl_verify_mode:
#authentication:
#user_name:
#password:
schleuder_database:
production:
adapter: "'sqlite3'"
database: "/var/lib/schleuder/db.sqlite"
pool: 5
timeout: 5000
schleuder_api:
host: localhost
port: 4443
# Certificat et clé à utiliser. Vous pouvez en créer de nouveaux avec `schleuder cert generate`.
tls_cert_file: "/etc/schleuder/schleuder-certificate.pem"
tls_key_file: "/etc/schleuder/schleuder-private-key.pem"
# Liste des api_keys pour autoriser l'accès à l'API.
# Exemple :
# valid_api_keys:
# - abcdef...
# - zyxwvu...
schleuder_valid_api_keys: []
### schleuder/list-defaults.yml.j2
schleuder_send_encrypted_only: "true"
schleuder_receive_encrypted_only: "true"
schleuder_receive_signed_only: "false"
schleuder_receive_authenticated_only: "false"
schleuder_receive_from_subscribed_emailaddresses_only: "true"
schleuder_receive_admin_only: "false"
schleuder_headers_to_meta:
- from
- to
- cc
- date
- sig
- enc
schleuder_keep_msgid: "true"
schleuder_keywords_admin_only:
- subscribe
- unsubscribe
- delete-key
schleuder_keywords_admin_notify:
- add-key
schleuder_internal_footer: ""
schleuder_public_footer: ""
schleuder_subject_prefix: ""
schleuder_subject_prefix_in: ""
schleuder_subject_prefix_out: ""
schleuder_bounces_drop_all: "false"
schleuder_bounces_drop_on_headers:
x-spam-flag: "yes"
schleuder_bounces_notify_admins: "true"
schleuder_include_list_headers: "true"
schleuder_include_openpgp_header: "true"
schleuder_openpgp_header_preference: signencrypt
schleuder_max_message_size_kb: 10240
schleuder_lists_log_level: warn
schleuder_logfiles_to_keep: 2
# Disponible : en, de.
schleuder_language: en
schleuder_forward_all_incoming_to_admins: "false"
### schleuder-web/database.yml
# schleuder-web utilise sa propre base de données pour stocker les identifiants des utilisateurs
schleuder_web_database:
production:
adapter: "'sqlite3'"
database: "db/production.sqlite"
pool: 5
timeout: 5000
### schleuder/gitlab.yml
# paramètres globaux
schleuder_gitlab_default_subject_filters: []
schleuder_gitlab_default_sender_filters: []
schleuder_gitlab_default_gitlab_connection: {}
# paramètres par liste
# voir https://0xacab.org/schleuder/schleuder-gitlab-ticketing
schleuder_gitlab_lists: []
# - [email protected]:
# project: tickets
# namespace: support
# subject_filters:
# - 'ignore me'
# - [email protected]:
# gitlab:
# endpoint: https://gitlab2.example.com/api/v4
# token: aaaa
# sender_filters:
# - 'noreply@example\.com'
Téléchargement
Téléchargez la dernière version avec ansible-galaxy
ansible-galaxy install systemli.schleuder
Exemple de Playbook
- hosts: serveurs
roles:
- { role: systemli.schleuder }
Exemple de Variables Étendues
schleuder_lists:
- name: [email protected]
admin: [email protected]
# la clé publique doit être dans
# files/adminkeys/{{ name }}_{{ admin }}.pub
- name: [email protected]
admin: [email protected]
admin_pubkey_present: False
send_list_key: False
# la clé publique n'est pas mise sur le serveur
# la liste est créée mais n'est pas fonctionnelle
# la clé de la liste n'est pas envoyée aux abonnés
- name: [email protected]
admin: [email protected]
state: absent
# la liste sera supprimée lors de la prochaine exécution d'ansible
# paramètres gitlab par liste
# voir https://0xacab.org/schleuder/schleuder-gitlab-ticketing
schleuder_gitlab_lists:
- [email protected]
project: tickets
namespace: support
subject_filters:
- 'ignore me'
- [email protected]:
gitlab:
endpoint: https://gitlab2.example.com/api/v4
token: 1234aaaa1234
sender_filters:
- 'noreply@example\.com'
Tests et Développement
Tests
Pour développer et tester le rôle, nous utilisons Github Actions, Molecule, et Vagrant. Dans un environnement local, vous pouvez facilement tester le rôle avec
Exécuter des tests locaux avec :
molecule test
Nécessite l'installation de Molecule, Vagrant et python-vagrant
.
Cela fera tourner une machine virtuelle avec Debian Bookworm. Ensuite, vous pourrez vous connecter à l'interface web de Schleuder via :
http://localhost:3000
Licence
GPLv3
Informations sur l'auteur
Role to setup and maintain schleuder software and it's lists
ansible-galaxy install systemli.schleuder