ホーム > Ansible Tower・AWX リファレンス
Ansible Towerの標準機能である、バックアップとリストアを使用して、別サーバに構築したAnsible Towerにシステムデータを移行する方法を解説します。
環境
環境は、移行元と移行先で同じ条件としました。
また、ネットワークは切断しており、外部には接続していません。
- 移行元サーバ
- OS:Red Hat Enterprise Linux 7.9
- Ansible Tower 3.8.4
- 移行先サーバ
- OS:Red Hat Enterprise Linux 7.9
- Ansible Tower 3.8.4
バックアップ
まず、移行元サーバからデータをバックアップします。
事前に下記の情報を登録しておきました。
・プロジェクト
・ジョブテンプレート
・インベントリ(ホストも作成済み)
・認証情報
・ジョブの実行履歴(何度かジョブを実行しました)
・プレイブック(RHEL7.9の[/var/lib/awx/projects/test_prj/ping.yml])
バックアップは、Ansible Towerインストール時に使用した「setup.sh」を使用します。
「setup.sh」が格納されているディレクトリに移動し、「./setup.sh -b」を実行します。
[root@localhost ~]# cd /home/ansible_work/ansible-automation-platform-setup-bundle-1.2.5-1/ [root@localhost ansible-automation-platform-setup-bundle-1.2.5-1]# ./setup.sh -b ~~~省略~~~ PLAY RECAP ************************************************************************************************************************************************************** localhost : ok=58 changed=33 unreachable=0 failed=0 skipped=35 rescued=0 ignored=0 The setup process completed successfully. Setup log saved to /var/log/tower/setup-2022-01-21-01:41:00.log. [root@localhost ansible-automation-platform-setup-bundle-1.2.5-1]#
「The setup process completed successfully.」と表示されればバックアップ完了です。
以下のバックアップファイルが作成されていることを確認します。
・tower-backup-2022-01-21-01:41:07.tar.gz
[root@localhost ansible-automation-platform-setup-bundle-1.2.5-1]# ls -l
合計 128
-rw-r--r-- 1 root root 2506 9月 3 21:39 README.md
-rw-r--r-- 1 root root 626 9月 3 21:39 backup.yml
drwxr-sr-x 4 root root 28 9月 3 21:42 bundle
drwxr-sr-x 3 root root 33 9月 3 21:40 collections
drwxr-sr-x 2 root root 17 9月 3 21:39 group_vars
-rw-r--r-- 1 root root 8524 9月 3 21:39 install.yml
-rw-r--r-- 1 root root 2923 11月 4 01:00 inventory
drwxr-sr-x 3 root root 8192 9月 3 21:40 licenses
-rw-r--r-- 1 root root 1335 9月 3 21:39 rekey.yml
-rw-r--r-- 1 root root 3492 9月 3 21:39 restore.yml
drwxr-sr-x 21 root root 4096 9月 3 21:39 roles
-rwxr-xr-x 1 root root 10819 9月 3 21:39 setup.sh
-rw------- 1 root root 68774 1月 21 01:42 tower-backup-2022-01-21-01:41:07.tar.gz
lrwxrwxrwx 1 root root 107 1月 21 01:42 tower-backup-latest.tar.gz -> /home/ansible_work/ansible-automation-platform-setup-bundle-1.2.5-1/tower-backup-2022-01-21-01:41:07.tar.gz
リストア(データ移行)
次に、リストア(データ移行)を行います。
FTPクライアントで、先ほどのバックアップファイルをローカルにダウンロードして、移行先サーバにアップロードします。
移行元サーバからローカルにダウンロードした際、ファイル名が下記のように文字化けします。
これは、Windowsでファイル名に使用出来ない文字が別の文字に置き換わっているだけなので、移行先サーバにアップロードした時に元のファイル名に戻るため、問題ありません。
tower-backup-2022-01-21-01%3A41%3A07.tar.gz
移行先サーバにファイルが格納されていることを確認します。
[root@localhost ansible-automation-platform-setup-bundle-1.2.5-1]# ls -l
合計 128
-rw-r--r-- 1 root root 2506 9月 3 21:39 README.md
-rw-r--r-- 1 root root 626 9月 3 21:39 backup.yml
drwxr-sr-x 4 root root 28 9月 3 21:42 bundle
drwxr-sr-x 3 root root 33 9月 3 21:40 collections
drwxr-sr-x 2 root root 17 9月 3 21:39 group_vars
-rw-r--r-- 1 root root 8524 9月 3 21:39 install.yml
-rw-r--r-- 1 root root 2923 11月 4 01:00 inventory
drwxr-sr-x 3 root root 8192 9月 3 21:40 licenses
-rw-r--r-- 1 root root 1335 9月 3 21:39 rekey.yml
-rw-r--r-- 1 root root 3492 9月 3 21:39 restore.yml
drwxr-sr-x 21 root root 4096 9月 3 21:39 roles
-rwxr-xr-x 1 root root 10819 9月 3 21:39 setup.sh
-rw-r--r-- 1 root root 68774 1月 21 01:42 tower-backup-2022-01-21-01:41:07.tar.gz
リストアコマンドを実行します。
コマンドは「./setup.sh -e ‘restore_backup_file={バックアップファイルのフルパス}’ -r」と記述します。
[root@localhost ansible-automation-platform-setup-bundle-1.2.5-1]# ./setup.sh -e 'restore_backup_file=/home/ansible_work/ansible-automation-platform-setup-bundle-1.2.5-1/tower-backup-2022-01-21-01:41:07.tar.gz' -r ~~~省略~~~ PLAY RECAP ****************************************************************************************************************************************************** localhost : ok=59 changed=25 unreachable=0 failed=0 skipped=37 rescued=0 ignored=0 The setup process completed successfully. Setup log saved to /var/log/tower/setup-2022-01-21-01:55:02.log. [root@localhost ansible-automation-platform-setup-bundle-1.2.5-1]#
「The setup process completed successfully.」と表示されれば、リストア完了です。
移行データの確認
移行先のサーバにデータが正しく登録されているか確認します。
例として、テンプレート画面から確認してみます。
テンプレートはもちろん、インベントリ、プロジェクトなども登録されていますね。
試しにジョブを実行してみます。(移行元サーバで作成した[ping]モジュールを実行するジョブです)
あっさり正常終了しました。
ここで分かったことは、移行元サーバに格納していたプレイブックも一緒に移行してくれるようです。
ここで1つ気になったのが、左上のジョブの番号が「4」になっています。
移行先のサーバは、Ansible Towerをインストールした直後なので、ジョブは実行していません。
これは、移行元サーバで実行したジョブの履歴も移行されたために発生しています。
気になる方は管理ジョブ「Cleanup Job Details」を実行して、ジョブを消去してしまいましょう。
メニューより、「管理ジョブ」>「Cleanup Job Details」のロケットボタンから起動します。
データの保持日数を確認されます。
今回は、保持しないので「0」を指定しました。
ログから確認すると、無事に「4」件のジョブ履歴が削除されたようです。
メニューより、「ジョブ」画面で確認してみます。
先程、実行したジョブのみが表示されていますね。
ジョブ履歴の削除後に再度、テスト用のテンプレートを実行したところ、ジョブの番号は「6」から開始されました。ジョブ履歴を削除してもシーケンスはそのままのようです。
ライセンス
Ansible Towerを使用するにはライセンスが必要なので、そちらはどうなっているか確認してみました。
結果、ライセンスの状態も移行元サーバから移行されているようです。
別途ライセンスを用意された方は、再度ライセンスを登録する必要があるかもしれませんので注意ポイントですね。
まとめ
以上、「【Ansible Tower 3.8.4】システムデータの移行」は終了となります。
かなり簡単に移行出来ました。Ansible Towerへの登録データはもちろん、プレイブックまで自動で移行してくれるため、手動で移行するより、かなり作業時間が短縮されてミスも無くなりますね。
ジョブの履歴も一緒に移行され、クリアしてもジョブの番号は戻らない点が気になりましたが、それ以上にメリットが大きいと思いました。
移行を検討している方は是非参考にお試しください。
コメント