systemli.schleuder

ansible-role-schleuder

ビルドステータス Ansible Galaxy

schleuder サービスと、そのシュレーダリストをインストールおよび管理します。

Ansible実行中にインストールされるものは?

このロールでは、デフォルトでschleuderschleuder-clischleuder-webがセットアップされます。

Webインターフェースには、localhost:3000からアクセスでき、デフォルトの認証情報(「root@localhost」 - 「slingit!」)でログインできます。

さらに、schleuder-gitlab-ticketing-pluginをインストールし、シュレーダリストをGitLabインスタンスに接続できます。その場合は、varsファイルにschleuder_install_gitlab_ticket_plugin: Trueを設定します。

他に必要なものは?

シュレーダが動作しているサーバーで、メールトランスポートを設定およびインストールする必要があります。さらに、シュレーダウェブインターフェースとそのポートを指すvhostを持つ稼働中のWebサーバーも必要です。

追加情報については、schleuderのドキュメントを参照してください。

新しいリスト/リスト管理者はどのようにリストを管理できますか?

リスト管理者の公開鍵が存在する場合、このロール/シュレーダはリストの作成について通知します。

シュレーダリスト管理者は、リストが作成された後にWebインターフェースを通じてログインすることで、パスワードをリクエストできます。

ロール変数

    ### 実行するプレイブックを定義:
    schleuder_install_web: True
    schleuder_install_cli: True
    schleuder_install_gitlab_ticket_plugin: False
    
    ### シュレーダ変数:
    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-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サーバーはローカルホストのみがリッスンします
    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へのアクセスを許可するapi_keysのリスト。
    # 例:
    # 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:
    #        - 'ignore me'
    #  - [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:
        - 'ignore me'
  - [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の仮想マシンが立ち上がります。その後、以下のURLからSchleuderウェブインターフェースに接続できます:

http://localhost:3000

ライセンス

GPLv3

著者情報

https://www.systemli.org

プロジェクトについて

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

インストール
ansible-galaxy install systemli.schleuder
ライセンス
Unknown
ダウンロード
1k
所有者
Your friendly tech collective