coaxial.mailcow
mailcow
ロール
このプレイブックは、mailcowメールサーバーをセットアップし、オプションで毎時のborgバックアップを行います(無効にするには変数を参照してください)。
バックアップは /var/backup
に保存され、borgによって処理された後に削除されます。
最新のバックアップは、24件の毎時バックアップ、7件の毎日バックアップ、4件の毎週バックアップ、6件の毎月バックアップ、1件の年次バックアップが保持されます。
mailcowホストの最小構成は、1GHzのCPU、1GBのRAM、5GBのディスクです。clamdが有効な場合は、1.5GBのRAM+スワップが推奨されます。毎時のバックアップ生成やオプションのスワップファイルのために追加のストレージスペースを計画してください(RAMの1倍分)。
前提条件
- 動作中のUbuntuホスト(現時点では他のディストリビューションはサポートされていません)
- Docker
- バックアップが有効な場合はborgバックアップリポジトリ(cf. https://borgbackup.readthedocs.org/en/latest/quickstart.html)
- borgリポジトリと一致するSSHキーとパスフレーズ
変数
名称 | 目的 | デフォルト値 | 備考 |
---|---|---|---|
mailcow__hostname |
mailcow.conf の MAILCOW_HOSTNAME を設定 |
設定されていない | 設定する必要があります |
mailcow__additional_san |
mailcow.conf の ADDITIONAL_SAN を設定(追加のドメイン用) |
未定義、オプション | カンマ区切りの値:lala.example.com,yay.example.org (mailcow__hostname の繰り返しなし) |
mailcow__skip_known_hosts |
borgmaticバックアップ用のカスタム known_hosts ファイルを使用するかどうか |
false |
true または false |
mailcow__dbpass |
mailcow.conf の dbpass を設定 |
設定されていない | 設定する必要があります |
mailcow__dbroot |
mailcow.conf の dbroot を設定 |
設定されていない | 設定する必要があります |
mailcow__http_port |
mailcow.conf の HTTP_PORT を設定 |
80 |
|
mailcow__http_bind |
mailcow.conf の HTTP_BIND を設定 |
0.0.0.0 |
|
mailcow__https_port |
mailcow.conf の HTTPS_PORT を設定 |
443 |
|
mailcow__https_bind |
mailcow.conf の HTTPS_BIND を設定 |
0.0.0.0 |
|
mailcow__tz |
mailcow.conf の TZ を設定 |
UTC |
可能な値のリスト |
mailcow__skip_le |
mailcow.conf の SKIP_LETS_ENCRYPT を設定 |
n |
y または n |
mailcow__skip_clamd |
mailcow.conf の SKIP_CLAMD を設定 |
n |
y または n |
mailcow__ssh_key_name |
borgで使用するSSHキーのファイル名 | borg_ssh_key |
mykey_rsa および mykey_rsa.pub の場合は mykey_rsa に設定 |
mailcow__borg_repo_host |
borgリポジトリがホストされている場所を示す | 設定されていない | 設定する必要があります(例:[email protected] ) |
mailcow__borg_repo_name |
borgリポジトリの名前、例:borgリポジトリURLの : の後および :: の前の部分 |
mailcow |
例:[email protected]:myrepo::backupname |
mailcow__ntp_servers |
Dockerホストの時刻を同期するためにデフォルトのNTPサーバーを上書き | 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org |
スペース区切りのホスト名/FQDN/IPの文字列である必要があります |
mailcow__enable_swap |
スワップファイルを使用するかどうか(3GB未満のRAMを持つホストに推奨) | true |
ホストのRAMと同じサイズのスワップファイルを /swapfile に作成します |
mailcow__enable_backups |
borgリポジトリへの毎時バックアップを有効にする | true |
true または false に設定します |
mailcow__git_version |
特定のバージョンのmailcowをチェックアウト | master |
mailcow gitリポジトリからの任意のコミット、ブランチ名、またはタグ |
ファイル
files/
ディレクトリ内にあります:
名称 | 目的 | 備考 |
---|---|---|
borg_ssh_key{,.pub} |
リモートborgリポジトリに接続するためのSSHキー | mailcow__enable_backups が true の場合のみ使用 |
passphrase |
リモートborgリポジトリのパスフレーズ | mailcow__enable_backups の場合のみ |
known_hosts |
borgmaticコンテナのためのカスタムknown_hostsファイル | mailcow__skip_known_hosts 変数を参照。サーバーの最新のキーを取得するには ssh-keyscan 93.184.216.34 を実行します。mailcow__enable_backups が true の場合のみ使用 |
バックアップ
mailcow__enable_backups
が設定されている場合、バックアップは毎時0分に mailcowバックアップスクリプト を使用して生成されます。
docker-borgmatic コンテナは、指定されたborgリポジトリに毎時30分後にバックアップを送り、バックアップディレクトリをクリーンアップします。リモートborgリポジトリには、rsync.net が非常に良いです。
使用法
最小限のプレイブック:
---
- hosts: all
become: true
gather_facts: false
vars:
mailcow__borg_repo_host: [email protected]
mailcow__hostname: test
mailcow__dbpass: test
mailcow__dbroot: test
rawpython__os_family: Debian
roles:
- coaxial.raw-python # ベアのUbuntu/DebianにPythonをブートストラップ
- coaxial.mailcow