paulfantom.restic

resticのロゴ

Ansibleロール: restic

ビルドステータス ライセンス Ansibleロール GitHubタグ

重要 - プロジェクトはアーカイブされています

プロジェクトは、私が管理することに興味を失ったためアーカイブされました(もはや使用していません)。管理に興味がある方がいれば、喜んで再開します。その方は 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を参照してください。

プロジェクトについて

Fast, secure, efficient backup program

インストール
ansible-galaxy install paulfantom.restic
ライセンス
mit
ダウンロード
55.6k
所有者
SRE / SWE specializing in observability. tea addict :tea: