Ansible 入門:ワークフロージョブテンプレート

Ansible 入門シリーズへようこそ。今回のトピックは、ワークフロージョブテンプレートです。Red Hat Ansible Tower にどのような正規ジョブテンプレートが用意されているかについては、こちらの過去記事をご覧ください。左記の記事では技術的な詳細を説明しているため、ワークフローに関するトピックの基本情報としてご確認いただくことをお勧めします。
基礎について理解できたら、この記事の続きをご覧ください。ワークフロージョブテンプレートとは具体的にどのようなものであるか、このテンプレートのメリット、作成および編集方法、その他のいくつかのポイント、さらにはこの優れたツールを最大限に活用するためのベストプラクティスについても説明します。
ワークフロージョブテンプレートとは
「ワークフロー」という言葉がすべてを表しています。Ansible Tower のこの機能 (バージョン 3.1 以降で利用可) を使用すると、ユーザーはジョブテンプレート、プロジェクト同期、インベントリー同期を自由に組み合わせたシーケンスを作成して、それらを 1 つのユニットとして実行することができます。そのため、ワークフローを使用すると、Playbook とジョブテンプレートを別々のグループに編成することができます。
ワークフローが役立つ理由
この機能を使用すると、各チームが使用する順序構造を設定することができます。たとえば、2 つの異なる環境 (つまり、ネットワーキング環境と開発者環境) を、それぞれアクセス権がある限りワークフローを介して結合させることができます。ワークフローを作成したユーザーが構造を設定するため、すべてのユーザーがジョブの順序を把握しておく必要はありません。これにより、異種のジョブタイプが結合され、プロジェクトが統合されます。その際、各チームは他のチームの実行内容を把握しておく必要はありません。
ワークフローが役立つもう 1 つの理由は、ワークフローを使用すると、ユーザーが任意の数の Playbook を利用して「デイジーチェーン」(数珠つなぎ) することができ、ジョブの成功または失敗に応じて意思決定ツリーを作成できる点です。必要に応じて、どれほどシンプルにも複雑にもすることができます。
ワークフローの作成方法
Ansible Tower トップメニューの [Templates (テンプレート)] セクションに移動します。
そのセクションで [Add (追加)] をクリックし、次のように [Workflow Template (ワークフロー・テンプレート)] を選択します。
次のような新しい画面が表示されます。この画面で、ワークフローテンプレートに任意の名前を付けて保存することができます。
これが完了したら、[Edit Workflow (ワークフローの編集)] に進みます。
次の画面が表示されます。この画面で、さまざまなジョブテンプレートを追加して、実行条件に失敗時、成功時、常時のいずれかを指定します。
実行時 (On Success)、失敗時 (On Failure)、または常時 (Always) を指定できます。
前のセクションで説明したように、Ansible ワークフローは必要なだけシンプルにすることも…
…複雑にすることもできます。
すべてを設定して保存したら、テンプレートを起動する準備は完了です。実行するワークフローの横にあるロケットアイコンをクリックして起動します。
ワークフローのその他の機能
必要なタイミングで実行されるようにワークフローをスケジュールすることもできます。ワークフロージョブテンプレートの横にあるカレンダーアイコンをクリックします。
指定したワークフローを自動的に実行するタイミングについて情報を入力します。
作成済みのワークフロー・テンプレートが効果的な場合、それをコピーすることもできます。次の図でハイライトされているボタンをクリックします。
ワークフローをコピーしても、元のワークフローに関連付けられた権限、通知、スケジュールはコピーされません。
ワークフローテンプレートに含まれている Playbook に追加の変数を設定したり、ユーザー入力を許可したりする必要がある場合は、Survey を設定することができます。Survey を設定するには、ワークフローテンプレートを選択し、[Add Survey (Survey の追加)] ボタンをクリックします。
Survey 画面が表示され、特定の質問と回答タイプを指定できます。
通知を使用すると、特定のワークフローについて詳細に制御や確認を行うことができます。通知の 1 つをアクティブにするには、通知を設定するワークフローを選択し、[Notifications (通知)] ボタンをクリックします。
通知リストでは、すでにいくつかの通知が設定されています。表示される画面で、特定の通知を選択することができます。次の例では、実行が成功したか失敗したか応じて「Workflow-Specific Notification」がアクティブになるように設定されています。
注:作業対象がダイナミックインベントリーである場合は、新しいワークフロージョブテンプレートを作成する際に、そのインベントリーの [updated on launch (起動時に更新)] が選択されていることを確認してください。
まとめ
これで、任意の数の Playbook を結合して、カスタマイズされた意思決定ツリーを生成し、それらのジョブをスケジュールしたり、通知を追加したりすることができるようになりました。素晴らしいことに、これはエンタープライズ版専用の機能ではありません。Ansible Tower のライセンスタイプに関係なく、インスタンスにログインして、自由にワークフローを作成することができます。
ワークフロージョブテンプレートを作成、変更する方法の詳細については、このトピックに関する公式ドキュメントをご覧ください。また、オンデマンド Web セミナーにご参加いただくと、さらに情報を得ることができます。
この記事がお役に立てば幸いです。Ansible Tower の強力な自動化機能をぜひご活用ください!