systemli.schleuder
ansible-role-schleuder
schleuder サービスと、そのシュレーダリストをインストールおよび管理します。
Ansible実行中にインストールされるものは?
このロールでは、デフォルトでschleuder、schleuder-cli、schleuder-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
著者情報
Role to setup and maintain schleuder software and it's lists
ansible-galaxy install systemli.schleuder