この記事は「Ansible Advent Calendar 2018」16日目の記事です。
こんにちは、Ansibleのテクニカルサポートエンジニアの八木澤(@hiyoko_taisa)です。 今回は、Ansible Towerを使う上で何かと便利な「awx-manage」コマンドについて解説します。
awx-manageコマンドとは?
Ansible Tower内部の様々な情報の取得や、テスト、便利機能を実行することができます。awxもしくはrootユーザで実行する必要があります。 awx-manageユーティリティの説明については、下記公式ドキュメントも併せて参照してください。
https://docs.ansible.com/ansible-tower/latest/html/administration/tower-manage.html
Inventoryのインポート
awx-manageのよく使われる機能として、Towerへのインベントリファイルのインポート が挙げられます。インベントリファイルを直接Towerのインベントリへインポートすることが可能です。
下記のように指定します。
awx-manage inventory_import --source=<インベントリが存在するディレクトリパス> --inventory-id=<TowerのインベントリID>
例として、Towerノード上に下記のようにinventoryファイルを作成します。
[root@tower332 ~]# cat inventory [Web] host-a host-b host-c host-d
そして awx-manage inventory_import
を実行すると、下記のように4ホストがTest Inventoryにインポートされます。
[root@tower332 ~]# awx-manage inventory_import --source=./ --inventory-id=1 1.789 INFO Updating inventory 1: Test Inventory 1.912 INFO Reading Ansible inventory source: /root 2.807 INFO Processing JSON output... 2.811 INFO Loaded 1 groups, 4 hosts 2.969 INFO Inventory import completed for (Test Inventory - 7) in 1.2s [root@tower332 ~]#
実際にAnsible Towerから確認してみると、下図のようにWebグループに4ホストが正常にインポートされていることが確認できます。
複数の対象ホストを同時に登録したい場合などに便利です。
Isolated Nodeとの接続確認
awx-manage test-isolated_connection
コマンドで、Isolated Nodeとの接続状況を確認することができます。
下記のように指定します。
# awx-manage test_isolated_connection --hostname <Isolated_Nodeのホスト名>
上記を実行するとTowerノードからSSHを実行し、実際にTowerノードからIsolated Nodeへの疎通の確認およびPlaybookの実行が可能か確認することができます。
問題がなければ、SUCCESS
が表示されます。
最後に
上記以外にもawx-manageコマンドは様々な活用が可能です。
awx-manage help
で実行可能なコマンド一覧を確認できますので、ぜひ確認してみてください。
特にインベントリファイルのインポートは、覚えておいて損はない手法ですので、Towerのインベントリに複数ノードの登録が必要な場合は、ぜひ試してみてください。