Ansible Towerのawx-manageユーティリティを活用する

この記事は「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ホストが正常にインポートされていることが確認できます。

f:id:hiyokotaisa:20181217183159p:plain

複数の対象ホストを同時に登録したい場合などに便利です。

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のインベントリに複数ノードの登録が必要な場合は、ぜひ試してみてください。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。