timorunge.freeipa_server_backup
freeipa_server_backup
この役割は、あなたのFreeIPAサーバーのバックアップを管理します。
要件
この役割には、Ansible 2.6.0以上が必要です。
安定したバージョンをインストール(および定義)するには、pipを使用できます:
pip install ansible==2.7.9
すべてのプラットフォーム要件は、メタデータファイルに記載されています。
この役割を利用するには、依存関係を確認してください。
また、公式ドキュメントもご覧ください。
インストール
ansible-galaxy install timorunge.freeipa_server_backup
役割の変数
この役割に渡せる変数とその簡単な説明は以下の通りです。(すべての変数は、defaults/main.ymlを確認してください)
現時点では、バックアップディレクトリを設定することは残念ながらできません。これはipa-backup
コマンド自体の制限です(デフォルトの場所は/var/lib/ipa/backup
です)。
# バックアップの最大年齢(日数)
# タイプ: Int
freeipa_server_backup_max_age: 14
# フルバックアップを実行する時間を定義
# (これによりipaサービスが停止・開始されます!)
# タイプ: Dict
freeipa_server_backup_cron_full:
minute: "{{ 59 | random(seed=inventory_hostname) }}"
month: "*"
weekday: "*"
hour: 4
day: "*"
state: present
# オンラインバックアップを実行する時間を定義
# タイプ: Dict
freeipa_server_backup_cron_online:
minute: "{{ 59 | random(seed=inventory_hostname) }}"
month: "*"
weekday: "*"
hour: "*"
day: "*"
state: present
例
1) デフォルト設定でFreeIPAサーバーバックアップをインストール
- hosts: freeipa-server-backup
roles:
- timorunge.freeipa_server_backup
2) カスタム設定でFreeIPAサーバーバックアップをインストール
- hosts: freeipa-server-backup
vars:
freeipa_server_backup_max_age: 7
freeipa_server_backup_cron_full:
day: "*"
hour: 3
minute: "11"
month: "*"
state: present
weekday: "*"
freeipa_server_backup_cron_online:
day: "*"
hour: "*"
minute: 33
month: "*"
state: present
weekday: "*"
freeipa_server_backup_cron_delete:
day: "*"
hour: 3
minute: 55
month: "*"
state: present
weekday: "*"
roles:
- timorunge.freeipa_server_backup
3) FreeIPAサーバーバックアップをインストールし、データを別の場所に移動(rsync経由)
- hosts: freeipa-server-backup
vars:
freeipa_server_backup_mv_location: rsync
freeipa_server_backup_rsync_opts:
- "-avq"
- "--ignore-existing"
- '-e "ssh -i /home/ipa-backups/.ssh/id_rsa"'
freeipa_server_backup_rsync_dest: [email protected]:/var/backups/ipa-backup
roles:
- timorunge.freeipa_server_backup
テスト
テストは、Dockerとdocker_test_runnerを使用して行われ、以下のコンテナが立ち上がります:
- CentOS 7
- Ubuntu 16.04 (Xenial Xerus)
- Ubuntu 17.10 (Artful Aardvark)
- Ubuntu 18.04 (Bionic Beaver)
- Ubuntu 18.10 (Cosmic Cuttlefish)
すべてのコンテナにAnsible 2.7.9がインストールされており、ローカルでtest playbookが適用されています。
さらなる詳細や追加のチェックについては、docker_test_runnerの設定とDockerエントリーポイントを確認してください。
# ローカルでのテスト:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml
依存関係
この役割には、稼働中のFreeIPA Serverが必要です。 (Github Repo)
リポジトリから直接FreeIPAパッケージを提供しないオペレーティングシステムを使用している場合は、上記のAnsible役割を使用できます。
この場合、freeipa_server_backup_install_pkgs
をfalse
に設定して、役割のパッケージインストールを無効にしてください。
TODO
- バックアップを暗号化する機能を追加する(
--gpg
および--gpg-keyring=GPG_KEYRING
) - ファイルをオフサイトの場所に移動する(s3、
rsync & ssh)
ライセンス
BSD 3-Clause "New" or "Revised" License
作者情報
- ティモ・ルンゲ