てくなべ (tekunabe)

ansible / network / automation

[Ansible/AWX] アドホック実行画面で選択できるモジュールを追加する

はじめに

Ansible Tower / AWX には、Playbook をジョブテンプレートとして実行する機能の他にも、アドホックansible コマンドを実行する機能もあります。

デフォルトでは利用できるモジュールが限られていて、たとえばネットワーク機器に対して有効なモジュールは選択できません。 こんなときのために、利用できるモジュールを設定で追加、削除ができます。(昨日知りました)

f:id:akira6592:20200422094726p:plain:w400
選択できるモジュールを追加する

この記事では、追加する設定方法と実行例をまとめます。

  • 動作確認環境
    • AWX 11.0

設定

設定 > ジョブ 画面の アドホックジョブで許可されるANSIBLEモジュール に追加したいモジュールを入力します。

ここでは、マルチベンダーに対応するネットワークモジュールであれる cli_command モジュール を追加します。

f:id:akira6592:20200422102526p:plain
モジュールの追加

アドホックコマンドの実行

まず、インベントリのホスト一覧画の画面から、対象のホストを選択して コマンドの実行 ボタンをクリックします。

f:id:akira6592:20200422094337p:plain
ホストの選択

コマンドの実行画面が表示されるので、先程追加した cli_command モジュールを選択し、引数にオプションを入力します。

ここでは、show version コマンドを実行するために、commmand="show version" を指定します。asnible コマンド-a オプション相当です。

続いて 起動 をクリックします。

f:id:akira6592:20200422094403p:plain
モジュールとオプションの指定

f:id:akira6592:20200422094434p:plain
実行結果
無事に、選択したホストに対して cli_command モジュールを実行できました。

おわりに

アドホックコマンドの実行で選択できるモジュールを追加する方法をご紹介しました。

Ansible Tower / AWX は、直接 Plaubook を追加、編集する機能がないので、ちょっとした疎通確認、動作確認する際にはアドホック実行は便利だと思います。

ちなみに、選択できるモジュールを追加できることを知らなくて、当初 RFE として issue をあげました。そして、数分でこの機能を親切に教えていただきました。ありがたいです。

RFE: ad hoc command for network devices · Issue #6772 · ansible/awx · GitHub