paulfantom.restic
Ansibleロール: restic
重要 - プロジェクトはアーカイブされています
プロジェクトは、私が管理することに興味を失ったためアーカイブされました(もはや使用していません)。管理に興味がある方がいれば、喜んで再開します。その方は paulfantom@gmail.com までメールをください。
説明
restic - 高速で安全、効率的なバックアッププログラムをデプロイします。
要件
- Ansible > 2.2
- デプロイするマシンにbzip2がインストールされていること(ansibleがインストールされている同じマシン)
ロール変数
オーバーライド可能なすべての変数は、defaults/main.ymlファイルおよび以下のテーブルに保存されています。
名称 | デフォルト値 | 説明 |
---|---|---|
restic_version |
0.9.6 | resticパッケージのバージョン。latestも受け付けます。 |
restic_user |
"root" | resticを実行するシステムユーザー |
restic_group |
"root" | resticを実行するシステムグループ |
restic_shell |
"/bin/false" | resticユーザーのシェル、su可能にする場合は変更してください |
restic_install_path |
"/usr/local/bin" | resticバイナリがインストールされるディレクトリ |
restic_cron_mailto |
restic_user | resticクロンの結果を送信する人、""に設定すると送信しません |
restic_cron_stdout_file |
null | resticの出力を記録するファイル、nullはmailtoで含める、/dev/nullを使用して捨てる |
restic_cron_stderr_file |
null | resticのエラーを記録するファイル、nullはmailtoで含める、/dev/nullを使用して捨てる |
restic_sudo_command_whitelist |
[] | resticがsudoで実行を許可されているコマンドのホワイトリスト |
restic_repos |
[] | resticリポジトリとクロンジョブの設定。詳細はdefaults/main.ymlに記載 |
セキュリティ
高いセキュリティを確保するために、このロールはrootとは異なるユーザーとしてresticを実行可能にし、ファイルへの読み取り専用アクセスを許可します。これは、resticリポジトリのPR#1483に従って実装されています。
特定のツールを別のユーザーとして実行する必要がある場合は、次のように restic_sudo_command_whitelist
にリストしてください。
restic_sudo_command_whitelist:
- command: /usr/bin/some_backup_related_command_that_needs_sudo
runas: root
その後、実際のバックアップコマンドに次のように追加します:sudo -u root /usr/bin/some_backup_related_command_that_needs_sudo
。
ヘルパー
このロールは、restic_install_path
にヘルパースクリプトもインストールします。これらのスクリプトはリポジトリの名前を使用しており、そのリポジトリに対して環境変数が正しいことを保証します。
たとえば、testrepo
という名前のresticリポジトリがある場合、restic-testrepo
コマンドを使用すると、正しい環境変数でそのリポジトリを操作するためのrestic
が実行されます。
例
プレイブック
プレイブックで次のように使用します:
- hosts: all
roles:
- paulfantom.restic
ローカルテスト
ローカルでロールをテストするための推奨方法は、Dockerとモレキュール(v2.x)を使用することです。お使いのシステムにDockerをインストールする必要があります。お使いのシステムに合ったDockerパッケージの入手方法を確認してください。 必要なすべてのパッケージを1行で指定できます:
pip install ansible 'ansible-lint>=3.4.15' 'molecule>2.13.0' docker 'testinfra>=1.7.0' jmespath
これは、.travis.yml
ファイルの install
セクションにリストされているものと似ています。
テストスイートをインストールした後、次のコマンドを実行してテストを実行できます:
molecule test --all
モレキュールに関する詳細は、彼らのドキュメントを確認してください。
Travis CI
モレキュールとトラビスCIを組み合わせることで、新しいPRの動作が複数のansibleバージョンや複数のオペレーティングシステムでテストされます。これにより、異なるロール構成のテストシナリオを作成することも可能になります。その結果、テストマトリックスはかなり大きく、ローカルテストよりも時間がかかるため、少々お待ちください。
貢献
貢献者ガイドラインを参照してください。
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細についてはLICENSEを参照してください。