どうも、Tです。
AWX環境でもアドホックコマンドを利用できることがわかったので使い方の備忘録です。
目次
環境
AWX
24.6.1
アドホックコマンドとは
Ansibleでは、ansible-playbookコマンドによりplaybookを実行しますが、アドホックコマンドを利用するとansibleコマンドでplaybookを準備することなく簡易な処理を実行することができます。
やりたいこと
以前、AWX EE(Execution Environments)の内部の環境をするために下記記事のようなplaybookを準備して、ジョブを実行するなど少々手間になる手順を実施していました。

AWX EEでアドホックコマンドを実行するこにより、もっと簡単にAWX EE内部の環境を把握したいと思います。
アドホックコマンドの事前準備
ドキュメントにはありませんが、AWX EEにアドホックコマンドを実行する際に、いくつか事前準備が必要だったので設定を行っておきます。
インベントリー・ホスト設定
AWX EE自身に向けてansibleコマンドを実行するため、インベントリーとホストの設定を行います。
インベントリーで「localhost」を追加します。
localhostインベントリーに下記の変数を設定します。この変数をインベントリーもしくはホストのどちらかに設定しておかないと、AWX EE自身に対してSSH接続しようとして失敗します。
--- ansible_connection: local
ホストに「127.0.0.1」を追加します。
認証情報設定
アドホックコマンドを実行する際に、認証情報の指定が必須になります。AWX EE内部向けでSSH接続は行わないため、厳密には認証情報は不要のためdummy用の設定を追加しておきます。
実際に設定しているのは、下記に箇所でユーザー名・パスワードなどの認証情報は設定なしで問題ありません。
アドホックコマンドを使ってみる
アドホックコマンドを使ってAWX EEの内部環境を確認していきます。
「リソース」->「インベントリー」画面を開き「localhost」をクリックします。
「ホスト」タブをクリックし「127.0.0.1」にチェックを付け、「コマンドの実行」をクリックします。
下記を選択し「次へ」をクリックします。今回は、ansibleのバージョンを確認するコマンドを指定しています。
モジュール:command 引数:ansible --version ※モジュールに渡す引数
実行するAWX EE環境を選択し「次へ」をクリックします。
認証情報に「dummy」を選択し「次へ」をクリックします。
「起動」をクリックします。
アドホックコマンドの実行結果がログに出力されます。ansibleのバージョンが確認できました。
ansible [core 2.15.12] config file = None configured module search path = ['/runner/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/lib/python3.9/site-packages/ansible ansible collection location = /runner/.ansible/collections:/usr/share/ansible/collections executable location = /usr/local/bin/ansible python version = 3.9.19 (main, Jun 11 2024, 00:00:00) [GCC 11.4.1 20231218 (Red Hat 11.4.1-3)] (/usr/bin/python3) jinja version = 3.1.4 libyaml = True
参考
まとめ
コマンドに渡す引数を変えることで、AWX EEのコレクション情報などを簡単に確認することができます。AWX EEコンテナは処理中しか動かないためアドホックコマンドを使えないと思っていましたが、AWX画面から実行できました。もっと早く知りたかったです…。