はじめに
お久しぶりです。たそ(taso_int)です。
もう6月ビビりますね…
JANOG54ブース対応で参加するので、良ければ僕と握手よろしくお願いします。
今日はAnsible Automation Controller の バッックアップリストアについて書こうと思います。
Ansible Automation Platformにはバックアップリストアの機能を持っており、バックアップファイルを読み込むことで復元することが可能です。
今回はAnsible Automation Controller にフォーカスして書きます。
環境
- OS RHEL8.9
- インスタンス m5.large
- SG (少なくとも22 443 許可)
AAP
- バージョン2.4(RHEL8用)
インストール方法はこちら
参考情報
公式ドキュメントより
実際に触る
バックアップ
以降rootユーザーで作業をしたいと思います。
バックアップはAutomation Controllerをインストールためのスクリプトであるsetup.shを使います。
インストーラーのファイルから以下のコマンドを実行することでバックアップファイルが作成されます。
インストールのスクリプトに-bをつけます。
./setup.sh -b ~省略~ PLAY RECAP ********************************************************************* localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 example : ok=93 changed=51 unreachable=0 failed=0 skipped=90 rescued=0 ignored=1 The setup process completed successfully. Setup log saved to /var/log/tower/backup-2024-06-02-14:01:23.log.
ls -l automation-platform-backup-2024-* -rw-------. 1 root root 269865 Jun 2 14:02 automation-platform-backup-2024-06-02-14:01:26.tar.gz
外部変数としてbackup_destを設定するとそのディレクトリ配下に保管されます。
デフォルトではsetup.shと同じ場所に保管されます。
./setup.sh -b -e 'backup_dest=/home/ec2-user/'
バックアップの仕組み
本当に軽くしか見れてないですが、setup.shの引数で-bを指定することで、インストール用ではなく、バックアップ用のPlaybookが実行されます。
/collections/ansible_collections/ansible/automation_platform_installer/roles/backup/あたりのroleが呼び出されているように思えました。
そこのpostgres.ymlのタスクで、community.postgresql.postgresql_dbモジュールを利用してPostgreSQLのDBをダンプしているコードが確認できました。
恐らく、AAPのサービスのステータスを見て稼働しているものをバックアップとして取ってまとめてるような気がします。
リストア
リストアもバックアップ同様にAutomation Controllerをインストールためのスクリプトであるsetup.shを使います。
インストーラーのファイルから以下のコマンドを実行することでリストアを実行されます。
インストールのスクリプトに-rをつけます。
また外部変数として、restore_backup_fileを設定するとそのバックアップファイル(絶対パス)を参照するようになります。
./setup.sh -e 'restore_backup_file=/opt/ansible-automation-platform-setup-bundle-2.4-5-x86_64/automation-platform-backup-2024-06-02-14:01:26.tar.gz' -r ~省略~ PLAY RECAP ********************************************************************* example : ok=100 changed=30 unreachable=0 failed=0 skipped=101 rescued=0 ignored=2 The setup process completed successfully. Setup log saved to /var/log/tower/restore-2024-06-02-14:49:00.log.
リストアの仕組み
これも本当に軽くしか見れてないですが、setup.shの引数で-rを指定することで、インストール用ではなく、リストア用のPlaybookが実行されます。
collections/ansible_collections/ansible/automation_platform_installer/roles/restore/あたりのroleが呼び出されているように思えました。
そこのpostgres.ymlのタスクで、community.postgresql.postgresql_dbモジュールを利用してPostgreSQLのDBをリストアしているコードが確認できました。
最後に
今回はバックアップリストアの手順を確認して試してみました。
余談ですが、そろそろAnsible Automation Platformもバージョン2.5が出てきそうな気がします。
あまりちゃんと追えてないですがウォッチはしておこうと思います。