schleuder

ansible-role-schleuder

Статус сборки Ansible Galaxy

Установите и поддерживайте сервис schleuder и его списки.

Что устанавливается во время выполнения ansible?

Эта роль установит schleuder, schleuder-cli, schleuder-web по умолчанию.

Веб-интерфейс доступен по адресу localhost:3000, и вы можете войти, используя стандартные учетные данные schleuder ("root@localhost" - "slingit!").

Дополнительно вы можете установить плагин для билетной системы GitLab и связать ваши списки schleuder с экземпляром GitLab. Для этого в вашем файле переменных необходимо установить schleuder_install_gitlab_ticket_plugin: True.

Что еще нужно?

Необходимо настроить и установить почтовый транспорт на сервере, где запущен schleuder. Также требуется работающий веб-сервер с виртуальным хостом, указывающим на ваш интерфейс schleuder-web и его порт.

Пожалуйста, ознакомьтесь с документацией schleuder для получения дополнительной информации.

Как новые списки/администраторы списков могут управлять своими списками?

Если публичный ключ администратора списка присутствует, эта роль/schleuder уведомит вас о создании списка.

Администраторы списка schleuder могут запросить свой пароль, войдя через веб-интерфейс после создания своего списка.

Переменные роли

### Определите, какие плейбуки следует выполнять:
schleuder_install_web: True
schleuder_install_cli: True
schleuder_install_gitlab_ticket_plugin: False

### переменные 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]
  #  # убедитесь, что публичный ключ администратора списка скопирован в
  #  # files/schleuder/adminkeys/{{ name }}_{{ admin }}.pub
  #  # иначе установите admin_pubkey_present в false
  #  # ---
  #  send_list_key: True
  #  present: True
  #  # ---
  #  admin_pubkey_present: True
  #  # если admin_pubkey_present установлено в false
  #  schleuder список будет создан, но не функционален

### переменные 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"
# установка в false заставит сервер rails слушать только на localhost
schleuder_schleuder_web_allow_access_from_outside: True

### переменные schleuder-gitlab-ticketing-plugin:
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

### переменные schleuder-cli:
schleuder_cli_path: "/root/.schleuder-cli"

###### Раздел файлов

### 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
  # Сертификат и ключ для использования. Вы можете создать новые с помощью `schleuder cert generate`.
  tls_cert_file: "/etc/schleuder/schleuder-certificate.pem"
  tls_key_file: "/etc/schleuder/schleuder-private-key.pem"

# Список api_keys для разрешения доступа к API.
# Пример:
# 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
# Доступные: en, de.
schleuder_language: en
schleuder_forward_all_incoming_to_admins: "false"

### schleuder-web/database.yml
# schleuder-web использует свою базу данных для хранения учетных данных пользователей
schleuder_web_database:
  production:
    adapter: "'sqlite3'"
    database: "db/production.sqlite"
    pool: 5
    timeout: 5000

### schleuder/gitlab.yml
# глобальные настройки
schleuder_gitlab_default_subject_filters: []
schleuder_gitlab_default_sender_filters: []
schleuder_gitlab_default_gitlab_connection: {}

# настройки для каждого списка
# см. https://0xacab.org/schleuder/schleuder-gitlab-ticketing
schleuder_gitlab_lists: []
#  - [email protected]:
#      project: tickets
#      namespace: support
#      subject_filters:
#        - 'игнорировать меня'
#  - [email protected]:
#      gitlab:
#        endpoint: https://gitlab2.example.com/api/v4
#        token: aaaa
#      sender_filters:
#        - 'noreply@example\.com'

Скачивание

Скачайте последнюю версию с помощью ansible-galaxy

ansible-galaxy install systemli.schleuder

Пример плейбука

- hosts: servers
  roles:
     - { role: systemli.schleuder }

Пример расширенных переменных

schleuder_lists:
  - name: [email protected]
    admin: [email protected]
    # публичный ключ должен находиться в 
    # files/adminkeys/{{ name }}_{{ admin }}.pub
  - name: [email protected]
    admin: [email protected]
    admin_pubkey_present: False
    send_list_key: False
    # публичный ключ не установлен на сервере
    # список создан, но не функционален
    # ключ списка не отправлен подписчикам
  - name: [email protected]
    admin: [email protected]
    state: absent
    # список будет удален при следующем запуске ansible         


# настройки gitlab для каждого списка
# см. https://0xacab.org/schleuder/schleuder-gitlab-ticketing
schleuder_gitlab_lists:
  - [email protected] 
      project: tickets
      namespace: support
      subject_filters:
        - 'игнорировать меня'
  - [email protected]:
      gitlab:
        endpoint: https://gitlab2.example.com/api/v4
        token: 1234aaaa1234
      sender_filters:
        - 'noreply@example\.com'

Тестирование и разработка

Тесты

Для разработки и тестирования этой роли мы используем Github Actions, Molecule и Vagrant. В локальной среде вы можете легко протестировать роль с помощью

Запустите локальные тесты с:

molecule test 

Для этого необходимо установить Molecule, Vagrant и python-vagrant. Для разработки и тестирования роли мы используем Travis CI, Molecule и Vagrant. В локальной среде вы можете легко протестировать роль.

Это развернет виртуальную машину с Debian Bookworm. После этого вы сможете подключиться к веб-интерфейсу Schleuder по адресу:

http://localhost:3000

Лицензия

GPLv3

Информация об авторе

https://www.systemli.org

О проекте

Role to setup and maintain schleuder software and it's lists

Установить
ansible-galaxy install systemli/ansible-role-schleuder
Лицензия
Unknown
Загрузки
750
Владелец
Your friendly tech collective