たそ@ITインフラ初心者

taso@初心者エンジニア

エンジニア5年目が適当に語るブログてす

Ansible Automation Controllerのバックアップリストアを試す

はじめに

お久しぶりです。たそ(taso_int)です。
もう6月ビビりますね…
JANOG54ブース対応で参加するので、良ければ僕と握手よろしくお願いします。
今日はAnsible Automation Controller の バッックアップリストアについて書こうと思います。
Ansible Automation Platformにはバックアップリストアの機能を持っており、バックアップファイルを読み込むことで復元することが可能です。
今回はAnsible Automation Controller にフォーカスして書きます。

環境

AWS

AAP

  • バージョン2.4(RHEL8用)

インストール方法はこちら

参考情報

公式ドキュメントより

https://access.redhat.com/documentation/ja-jp/red_hat_ansible_automation_platform/2.4/html/automation_controller_administration_guide/controller-backup-and-restore

実際に触る

バックアップ

以降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が出てきそうな気がします。
あまりちゃんと追えてないですがウォッチはしておこうと思います。