はじめに
Ansible Tower / AWX では、ワークフロービジュアライザーという画面で、ワークフローを可視化できます。
ビジュアル的に可視化されていると直感的で分かりやすいです。一方で、複数のワークフロー定義を比較したいなどの場合、何かしらのフォーマットのテキストファイルのほうが都合が良いのではないでしょうか。
tower-cli
というコマンドツールを利用することで、YAML で表示できます。
この記事では、簡単なサンプルを元にワークフローの定義を tower-cli
を使って YAML にする方法をご紹介します。
- 環境
- AWX 7.0.0
- Tower CLI 3.3.7
準備
インストール
tower-cli
をインストールしていない場合は以下のコマンドでインストールします。
$ pip install ansible-tower-cli
設定
接続先を設定をします。
$ tower-cli config host https://[towerかAWXのアドレス]/ $ tower-cli config user [ユーザー名] $ tower-cli config password [パスワード] $ tower-cli config verify_ssl false # 必要に応じて
定義の表示
サンプル1
以下のワークフローテンプレート testwf1
をYAMLで表示します。
tower-cli
で以下のコマンドを実行します。
$ tower-cli workflow schema testwf1 - id: 91 job_template: 17 success_nodes: - id: 92 job_template: 18
id:
はワークフローノード固有に振られるIDです。同じIDジョブテンプレートを別途配置すると別のIDが振られ、区別されます。
なお、-v
オプションを付けると、API を叩く様子が確認できます。
$ tower-cli workflow schema testwf1 -v *** DETAILS: The wfjt field is given as a name; looking it up. **************** *** DETAILS: Getting the record. ********************************************** GET https://tower/api/v2/workflow_job_templates/ Params: [('name', 'testwf1')] *** DETAILS: Getting records. ************************************************* GET https://tower/api/v2/workflow_job_template_nodes/ Params: [('workflow_job_template', 16)] - id: 91 job_template: 17 success_nodes: - id: 92 job_template: 18
ここでは、testwf1
というワークフローテンプレート名を指定しましたが、IDでも大丈夫です。
IDはワークフローテンプレートの設定画面を Web UI で開いたときの URL で確認できます。(以下の例の場合 16
)
https://[towerかAWXのアドレス]#/templates/workflow_job_template/16?(略)
サンプル2
以下のワークフローテンプレート testwf2
をYAMLで表示します。さきほどより少しノードが増えています。
tower-cli
で以下のコマンドを実行します。
$ tower-cli workflow schema testwf2 - id: 93 job_template: 17 success_nodes: - id: 94 job_template: 18 success_nodes: - id: 95 job_template: 19
まとめ
ワークフローの定義を tower-cli
を使って YAML ファイルにする方法をご紹介しました。なにかしらのテキストフォーマットで確認したいときに、参考にしていただければと思います。
補足
tower-cli のリポジトリによると、本ツールは段階的に廃止され、後継は awx コマンドのようです。
参考
tower-cli/WORKFLOWS.rst at master · ansible/tower-cli · GitHub