systemli.schleuder
ansible-role-schleuder
Instalar y mantener un servicio de schleuder y sus listas de schleuder.
¿Qué se instala durante la ejecución de ansible?
Este rol configurará schleuder, schleuder-cli y schleuder-web por defecto.
La interfaz web es accesible a través de localhost:3000 y puedes iniciar sesión con las credenciales predeterminadas de schleuder ("root@localhost" - "slingit!").
Además, puedes instalar el plugin de procesamiento de tickets de schleuder-gitlab y conectar
tus listas de schleuder a una instancia de gitlab. Para ello, debes establecer
schleuder_install_gitlab_ticket_plugin: True
en tu archivo de variables.
¿Qué más se necesita?
Necesitas configurar e instalar un transporte de correo en el servidor donde se ejecuta schleuder. Además, debes tener un servidor web en funcionamiento con un vhost apuntando a tu interfaz de schleuder-web y su puerto.
Consulta la documentación de schleuder para obtener información adicional.
¿Cómo pueden los nuevos administradores de listas gestionar sus listas?
Si hay una clave pública del administrador de la lista presente, este rol/schleuder te informará sobre la creación de la lista.
Los administradores de listas de Schleuder pueden solicitar su contraseña iniciando sesión a través de la interfaz web, después de que su lista haya sido creada.
Variables de Rol
### Definir qué libros de jugadas deben ejecutarse:
schleuder_install_web: True
schleuder_install_cli: True
schleuder_install_gitlab_ticket_plugin: False
### Variables de 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]
# # asegúrate de copiar la clave pública del administrador de la lista a
# # files/schleuder/adminkeys/{{ name }}_{{ admin }}.pub
# # de lo contrario, establece admin_pubkey_present en false
# # ---
# send_list_key: True
# present: True
# # ---
# admin_pubkey_present: True
# # si admin_pubkey_present se establece en false
# la lista de schleuder se creará, pero no será funcional
### Variables de 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"
# establecer en false hará que el servidor de Rails escuche solo en localhost
schleuder_schleuder_web_allow_access_from_outside: True
### Variables del plugin de procesamiento de tickets de schleuder-gitlab:
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 de schleuder-cli:
schleuder_cli_path: "/root/.schleuder-cli"
###### Sección de archivos
### 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
# Certificado y clave a utilizar. Puedes crear nuevos con `schleuder cert generate`.
tls_cert_file: "/etc/schleuder/schleuder-certificate.pem"
tls_key_file: "/etc/schleuder/schleuder-private-key.pem"
# Lista de api_keys para permitir el acceso a la API.
# Ejemplo:
# 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 utiliza su propia base de datos para almacenar las credenciales de los usuarios
schleuder_web_database:
production:
adapter: "'sqlite3'"
database: "db/production.sqlite"
pool: 5
timeout: 5000
### schleuder/gitlab.yml
# configuraciones globales
schleuder_gitlab_default_subject_filters: []
schleuder_gitlab_default_sender_filters: []
schleuder_gitlab_default_gitlab_connection: {}
# configuraciones por lista
# ver 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'
Descargar
Descarga la última versión con ansible-galaxy
ansible-galaxy install systemli.schleuder
Ejemplo de Playbook
- hosts: servers
roles:
- { role: systemli.schleuder }
Ejemplo de Variables Extendidas
schleuder_lists:
- name: [email protected]
admin: [email protected]
# la clave pública debe estar en
# files/adminkeys/{{ name }}_{{ admin }}.pub
- name: [email protected]
admin: [email protected]
admin_pubkey_present: False
send_list_key: False
# la clave pública no se colocó en el servidor
# la lista se crea pero no es funcional
# no se envía la lista de claves a los suscriptores
- name: [email protected]
admin: [email protected]
state: absent
# la lista se eliminará en la próxima ejecución de ansible
# configuraciones de gitlab por lista
# ver 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'
Pruebas y Desarrollo
Pruebas
Para desarrollar y probar el rol utilizamos Github Actions, Molecule y Vagrant. En el entorno local puedes probar fácilmente el rol con
Ejecuta pruebas locales con:
molecule test
Se requiere tener instalados Molecule, Vagrant y python-vagrant
. Para desarrollar y probar el rol utilizamos Travis CI, Molecule y Vagrant. En el entorno local puedes probar fácilmente el rol con
Esto creará una máquina virtual con Debian Bookworm. Después podrás conectarte a la interfaz web de Schleuder a través de:
http://localhost:3000
Licencia
GPLv3
Información del Autor
Role to setup and maintain schleuder software and it's lists
ansible-galaxy install systemli.schleuder