Documentation

19. ワークフロージョブテンプレート

workflow job template (ワークフロージョブテンプレート) は、一連の各種ジョブテンプレートをリンクして、リリースプロセスに含まれていたジョブ全体を追跡するタスクを 1 つのユニットとして実行します。このようなリソースには以下が含まれます。

  • ジョブテンプレート

  • ワークフローテンプレート

  • プロジェクト同期

  • インベントリーソース同期

(templates-icon) メニューでは、現在利用可能なワークフローとジョブテンプレートのリストを表示します。デフォルトのビューは折りたたまれており(コンパクト)、テンプレート名、テンプレートタイプ、テンプレートを使用して実行したジョブのステータスが表示されていますが、展開 をクリックして更に情報を表示できます。このリストは、名前別にアルファベット順にソートされていますが、他の基準でソートしたり、さまざまなフィールドやテンプレートの属性別に検索できます。この画面から、ジョブテンプレートの起動 (launch)、コピー (copy)、削除 (delete) が可能です。ジョブテンプレートを削除する前に、ワークフロージョブテンプレートで使用されていないことを確認してください。

ワークフローテンプレートにのみ、ワークフローエディターにアクセスするためのショートカットとしてワークフロービジュアライザーアイコン (wf-viz-icon) があります。

Wf templates - home with example wf template

注釈

ワークフローテンプレートは、ワークフローテンプレートのビルディングブロックとして使用できます。ワークフローテンプレートに含まれるパラメーターの多くで、Prompt on Launch (起動プロンプト) を有効にして、ワークフロージョブテンプレートレベルで変更でき、個別のワークフローテンプレートレベルで割り当てられた値に影響を与えることはありません。詳しくは、「ワークフロービジュアライザー」のセクションを参照してください。

19.1. ワークフローテンプレートの作成

新規ワークフロージョブテンプレートを作成するには、以下を実行します。

  1. add options template ボタンをクリックしてから、メニュー一覧より ワークフロージョブテンプレート を選択します。

Wf templates - create new wf template

  1. 以下のフィールドに該当する詳細を入力します。

  • 名前: ワークフローテンプレートの名前を入力します。

  • 説明: 任意の説明を入力します (オプション)。

  • 組織: オプションでワークフローを関連付ける組織を入力するか、これを検索します。

  • インベントリー: オプションで現在ログインしている Tower ユーザーが利用できるインベントリーから、このワークフローテンプレートで使用するインベントリーを入力するか、検索します。

  • 起動プロジェクト: 選択されている場合は、このワークフローテンプレートの起動時または、ワークフローテンプレートが別のワークフローテンプレートで使用時に、インベントリーを提供できます。

  • 制限: オプションで、ワークフローが実行されるサーバーのサブセットに対する制限を指定します。この値は、Playbook が管理または影響を与えるホストの一覧をさらに制限するためのホストのパターンです。複数のパターンは、コロン (「:」) で区切ることができます。コアの Ansible と同様に、「a:b」は「グループ a または b に含まれる」、「a:b:&c」は「a または b に含まれ、c には必ず含まれる」、「a:!b」は「a に含まれるが間違いなく b には含まれない」という意味になります。

  • 起動プロンプト: これが選択されている場合、デフォルト値が指定されている場合でも、起動時に制限を選択するようプロンプトが出されます。

  • ** SCM ブランチ**: オプションでブランチを指定して、ブランチに対してプロンプトを出すすべてのジョブテンプレートノードをオーバーライドします。

    • 起動プロンプト: これが選択されている場合、デフォルト値が指定されている場合でも、起動時に SCM ブランチを選択するようプロンプトが出されます。

  • ラベル: 「dev」または「test」などのこのワークフローテンプレートを説明するオプションのラベルを指定します。ラベルを使用して Tower ディスプレイにあるワークフローテンプレートおよび完了したジョブの分類およびフィルターを実行します。

    • ラベルは、ワークフローテンプレートに追加される際に作成されます。ラベルは、ワークフローテンプレートで提供されるプロジェクトを使用する単一の組織に割り当てられます。組織のメンバーは、(管理者ロールなどの) 編集パーミッションがある場合はワークフローテンプレートでラベルを作成できます。

    • ワークフローテンプレートが保存されると、ラベルはテンプレートの概要に表示されます。

    • ラベルの横にある「x」をクリックしてこれを削除します。ラベルが削除され、ワークフローまたはワークフローテンプレートの関連付けが解除されると、ラベルは組織ラベルの一覧から永久に削除されます。

    • ジョブは起動時にワークフローテンプレートからラベルを継承します。ラベルがワークフローテンプレートから削除される場合、ジョブからも削除されます。

_images/job-template-create-labels.png _images/job-template-saved-labels.png
  • オプション:

  • 同時実行ジョブの有効化 にチェックを入れて、このワークフローの同時実行を許可します。追加情報は、「Ansible Tower の容量判断およびジョブの影響」を参照してください。

  • Webhook の有効化 にチェックを入れて、ジョブテンプレートを起動するために使用される定義済みの SCM システム Web サービスとのインターフェース機能を有効にします。現在サポートされている SCM システムは GitHub と GitLab です。

Webhook を有効にすると、他のフィールドが表示され、以下の追加情報の入力を求められます。

  • Webhook サービス: Webhook からリッスンするサービスを選択します

  • Webhook の認証情報: オプションで、ステータス更新を Webhook サービスに送り返すために使用する認証情報として GitHub または GitLab のパーソナルアクセストークン (PAT) を指定します。選択するには認証情報が存在する必要があります。作成するには、「認証情報タイプ」を参照してください。

保存 したら、追加のフィールドにデータが投入され、ワークフロービジュアライザーが自動的に表示されます。

  • Webhook URL: POST 要求を送信する Webhook サービスの URL が自動的に入力されます。

  • Webhook Key: Tower に送信されたペイロードへの署名に Webhook サービスが使用するために生成された共有シークレット。Tower がこのサービスからの Webhook を受け入れるには、Webhook サービスでこの設定が行われている必要があります。

Webhook の設定に関する追加情報は、「Webhook の使用」を参照してください。

  • 追加変数:

    • 追加のコマンドライン変数を Playbook に渡します。これは、ansible-playbook の -e または --extra-vars コマンドラインパラメーターで、これについては、Ansible Tower ドキュメント (Passing Variables on the Command Line ) に説明されています。

    • YAML または JSON のいずれかを使用してキー/値のペアを指定します。このような変数には、優先順位を示す最大値があり、他の場所で指定された他の変数よりも優先されます。値の例には、以下が含まれます。

      git_branch: production
      release_version: 1.5
      

    追加変数についての詳細は、追加変数 を参照してください。

    • 起動プロンプト: これが選択されている場合、デフォルト値が指定されている場合でも、起動時にコマンドライン変数を選択するようプロンプトが出されます。

注釈

スケジュールに extra_vars を指定可能にするには、ワークフローテンプレートの EXTRA VARIABLES起動プロンプト を選択するか、ワークフローテンプレートの Survey を有効にする必要があります。これにより、回答済みの Survey の質問が extra_vars に指定されます。

  1. ワークフローテンプレートの設定が完了したら、保存 をクリックします。

テンプレートを保存すると、ワークフローテンプレートのページが終了され、ワークフロービジュアライザーが開き、ワークフローをビルドできるようになります。詳しい情報は、「ワークフロービジュアライザー」セクションを参照してください。ワークフローをビルドしない場合には、ワークフロービジュアライザーを終了して、新たに保存したテンプレートの詳細タブに戻り、パーミッション、通知、スケジュール、および、Survey を追加するか、完了したジョブの表示やワークフローテンプレートのビルドを後から実行します。または、起動 をクリックしてワークフローを開始することもできますが、開始前にテンプレートを保存しておく必要があります。していない場合は、起動 ボタンはグレーアウトされたままです。また、通知 タブはテンプレートの保存後にしか表示されない点に留意してください。

_images/wf-templates-wf-template-saved.png

新規に作成されたワークフローテンプレートが画面下部のテンプレートの一覧の表示される際に、テンプレートが保存されていることを確認できます。

Wf templates - newly added wf template

注釈

インベントリーがワークフローテンプレートに指定されている場合には、インベントリーがテンプレートリストビューに表示されます。

_images/wf-templates-list-default-inventory.png

19.2. パーミッションの使用

パーミッション をクリックすると、ユーザーおよびチームメンバーに関連付けられたパーミッションの確認、付与、編集および削除を実行できます。

_images/wf-template-completed-permissions-view.png

add ボタンをクリックし、このワークフローテンプレートの新規のパーミッションを作成します。

この例では、2 ユーザーと 1 チームが選択されており、それぞれにこのワークフローテンプレートのパーミッションが付与されています。

_images/wf-template-assign-permissions-view.png

チームとユーザー間を切り換える必要はなく、パーミッションを同時にどちらにも割り当てることができることに注意してください。

19.3. 通知の使用

通知 をクリックすると、設定した全通知の統合を確認できます。テンプレートを保存してはじめて、通知 タブが表示されます。

_images/wf-template-completed-notifications-view.png

トグルを使用して、特定のテンプレートで使用する通知を有効または無効にします。詳細については、「通知の有効化と無効化」を参照してください。

通知が設定されていない場合には、グレーのボックス内の 通知 リンクをクリックして新規通知を作成します。

_images/wf-template-no-notifications-blank.png

さまざまな通知タイプの設定に関する追加の情報は、「通知タイプ」を参照してください。

19.4. 完了したジョブの表示

完了したジョブ タブでは、実行したワークフローテンプレートの一覧が表示されます。展開 をクリックして、各ジョブのさまざまな情報を表示します。

_images/wf-template-completed-jobs-list.png

注釈

ワークフローレベルのインベントリーがランタイム時に指定された場合には、インベントリー名がジョブリストのワークフロージョブに表示されます。

_images/wf-template-completed-jobs-list-with-inventory.png

このビューから、ジョブID、ワークフロージョブの名前をクリックして、その内容が図で表示されます。以下の例では、141 - WF using JT のワークフロージョブのジョブ詳細が表示されます。

_images/wf-template-jobID-detail-example.png

ワークフローテンプレートが他のワークフローで使用されている場合には、ジョブ詳細では親のワークフローが表示されます。

_images/wf-template-job-detail-with-parent.png

上記の例では、親ワークフローテンプレート Overall をクリックすると、ジョブ詳細ページ、ノードのグラフィカルな情報、ノード起動時の各ノードのステータスが表示されます。

_images/wf-template-jobs-detail-example.png

ノードには、一目で識別できるラベルが付いています。詳細については、「ワークフロービジュアライザー」セクションの legend_を参照してください。

19.5. スケジュールの使用

スケジュール をクリックすると、このテンプレートに設定されているスケジュールを確認できます。

Workflow Template - schedule

19.5.1. ワークフローテンプレートのスケジュール

ジョブテンプレートの実行をスケジュールするには、スケジュール タブをクリックします。

  • スケジュールがすでに設定されている場合には、スケジュールの設定をレビュー、編集、または有効化/無効化します。

  • スケジュールが設定されていない場合には、詳細情報を「スケジュール」で参照してください。

ネスとかされたワークフローで使用するワークフローテンプレートに、インベントリーオプションとして survey や、Prompt on Launch が選択されている場合には、PROMPT ボタンが、スケジュールフォームの SAVE および CANCEL ボタンの横に表示されます。PROMPT ボタンをクリックすると、オプションで INVENTORY のステップが表示され、インベントリーを指定または削除するか、変更せずにこのステップをスキップすることができます。

19.6. Survey

「実行」または「チェック」のジョブタイプを含むワークフローにより、ワークフローテンプレートの作成または編集画面で Survey 設定できます。Survey は、「Prompt for Extra Variables (追加変数のプロンプト)」の場合と同様に Playbook の追加変数を設定しますが、ユーザーにとって使いやすい質問と回答を使って実行します。また Survey はユーザー入力の確認を可能にします。survey ボタンをクリックして Survey を作成します。

Survey のユースケースは多岐に及びます。一例として、開発者に「push to stage」ボタンを付与する操作が必要な場合、これは Ansible の高度な知識がなくても実行できます。起動時に、このタスクは「What tag should we release?」などといった質問への回答を求めるプロンプトを出す可能性があります。

多項選択式の質問など、多種の質問を尋ねることができます。

19.6.1. Survey の作成

Survey を作成するには、以下を実行します。

  1. survey ボタンをクリックして、Survey の追加 ウィンドウを起動します。

Workflow Job Template - create survey

画面上部にある ON/OFF の切り替えボタンを使用すると、この survey プロンプトをすぐに有効化または無効化できます。

  1. Survey には複数の質問を含めることができます。それぞれの質問について、以下の情報を入力します。

  • 名前: ユーザーに尋ねる質問

  • 説明: (オプション) ユーザーに尋ねられる内容の説明。

  • Answer Variable Name (回答の変数名): ユーザーの応答の保存に使用する Ansible 変数名。これは Playbook で使用される変数です。変数名にはスペースを含めることができません。

  • 回答タイプ: 以下の質問のタイプから選択します。

    • テキスト: 単一行のテキスト。この回答の最小および最大の長さ (文字数) を設定できます。

    • Textarea (テキスト領域): 複数行のテキストフィールド。この回答の最小および最大の長さ (文字数) を設定できます。

    • パスワード: 応答は、実際のパスワードが処理される場合と同様に機密情報として処理されます。この回答の最小および最大の長さ (文字数) を設定できます。

    • Multiple Choice (single select) (複数の選択 (単一選択)): 1 度に 1 つのみを選択できるオプションの一覧。複数の選択オプション ボックスに 1 行に 1 つのオプションを入力します。

    • Multiple Choice (multiple select)(複数の選択 (複数選択)): 1 度に任意の数のオプションを選択できるオプションの一覧。複数の選択オプション ボックスに 1 行に 1 つのオプションを入力します。

    • Integer (整数): 整数。この回答の最小および最大の長さ (文字数) を設定できます。

    • Float (浮動): 10 進数。この回答の最小および最大の長さ (文字数) を設定できます。

  • Default Answer (デフォルトの回答): 選択したタイプにより、質問に対するデフォルトの回答を指定できます。この値はインターフェースに事前投入されており、ユーザーにより回答が指定されない場合に使用します。

  • 必須: この質問に対する回答がユーザーから求められているかどうかを示します。

  1. 質問の情報を入力したら、add ボタンをクリックして質問を追加します。

定型化されたバージョンの Survey が「プレビュー」ペインに表示されます。いずれの質問についても、編集 ボタンをクリックして質問を編集できます。削除 ボタンをクリックすると質問を削除でき、グリッドアイコンをクリックおよびドラッグして質問の順序を変更できます。

  1. 左ペインに戻り、質問を追加します。

  2. 完了したら、保存 をクリックして Survey を保存します。

Workflow-template-completed-survey

19.6.2. オプションの Survey の質問

Survey の質問に対する 必須 の設定は、対話するユーザーにとって回答がオプションかどうかを決定します。

背後では、オプションの Survey 変数が入力されていない場合でも extra_vars の Playbook に渡すことができます。

  • テキスト以外の変数 (入力タイプ) がオプションとマークされ、入力されていない場合には、Survey の extra_var は Playbook に渡されません。

  • テキスト入力またはテキスト領域の入力がオプションとしてマークされていて、この内容が入力されておらず、最小の length > 0 が設定されている場合に、Survey の extra_var は Playbook に渡されません。

  • テキスト入力またはテキスト領域の入力がオプションとしてマークされていて、この内容が入力されておらず、最小の length === 0 が設定されている場合に、Survey の extra_var は、値が空のストリング ( “” ) に設定された状態で Playbook に渡されます。

19.7. ワークフロービジュアライザー

ワークフロービジュアライザーが導入され、グラフィカルな形式で、ジョブテンプレート、ワークフローテンプレート、プロジェクト同期、インベントリー同期を統合し、ワークフローテンプレートをビルドできるようになります。ワークフローテンプレートをビルドする前に、親、子、兄弟のノードに関するさまざまなシナリオでの留意事項について「ワークフロー」のセクションを確認してください。

19.7.1. ワークフローの構築

テンプレート (ジョブテンプレートまたはワークフロージョブテンプレート)、プロジェクトの同期、インベントリーの同期、または承認のうち、複数のノードタイプの組み合わせを設定して、ワークフローを構築できます。各ノードは長方形で表され、リレーションシップと関連するエッジタイプはノード間を接続する線 (リンク) で表されます。

  1. ワークフローテンプレートの詳細/編集ビューで workflow editor ボタンをクリックするか、テンプレートリストビューから (wf-viz-icon) アイコンをクリックしてワークフロービジュアライザーを起動します。

_images/wf-editor-create-new.png
  1. start ボタンをクリックし、ワークフローに追加するノードの一覧を表示します。

_images/wf-editor-create-new-add-template-list.png
  1. 右側のペインで、ドロップダウンメニューから追加するノードのタイプを選択します。

_images/wf-add-node-selections.png

承認 ノードを選択する場合は、「承認ノード」を参照してください。

ノードを選択すると、ノードに関連付けられた使用できる有効なオプションが表示されます。詳細にアクセスするには、ノードの横にあるツールチップをクリックします。

_images/wf-node-selection-tooltip.png

注釈

ワークフローのグラフへの入力時にデフォルトのインベントリーがないジョブテンプレートを選択すると、親ワークフローのインベントリーが使用されます。ジョブテンプレートには認証情報は必要ありませんが、パスワードを必要とする認証情報がある場合には、この認証情報がプロンプトを使用する認証情報に置き換えられない限り、使用中のワークフローに対してジョブテンプレートを選択することはできません。

  1. ノードを選択すると、ワークフローはビルドを開始するので、選択したノードで行うアクションタイプを指定する必要があります。このアクションは、エッジタイプ とも呼ばれます。

  2. ノードが root ノードの場合には、エッジタイプはデフォルトで Always になり、編集できません。

_images/wf-editor-create-new-add-template-type.png

後続のノードでは、次のシナリオ (エッジタイプ) のいずれかを選択して、それぞれに適用できます。

  • Always (常時): 成功または失敗にかかわらず、実行を継続します。

  • On Success (成功時): 正常に完了すると、次のテンプレートを実行します。

  • On Failure (失敗時): 失敗時に、別のテンプレートを実行します。

  1. Convergence (収束) フィールドから、ノードが収束ノードである場合のノードの動作を選択します。

  • Any はデフォルトの動作で、次の収束するノードをトリガーする前に、指定されたとおりに「すべて」のノードを完了できます。 1 つの親のステータスがこれらの実行条件の 1 つを満たしている限り、任意の子ノードが実行されます。つまり、ANY ノードは **すべて**の ノードを完了する必要がありますが、1つ のノードのみが期待される結果で完了する必要があります。

  • 次のノードを収束およびトリガーする前に、すべての*ノードが指定どおりに完了することを確認する場合は **All* を選択します。ALL ノードの目的は、子ノードを実行するために、すべての親がその期待される結果を満たしていることを確認することです。ワークフローは、子ノードを実行するために、すべての親が期待どおりに動作したことを確認します。それ以外の場合、子ノードは実行されません。

これが選択されていると、グラフィカルビューによりノードに ALL というラベルが付けられます。

_images/wf-editor-convergent-node-all.png

注釈

ノードがルートノードであるか、またはノードが収束していないノードである場合、Convergence ルールの設定は適用されません。その動作は、それをトリガーするアクションによって決定されるためです。

  1. ワークフローで使用するジョブテンプレートのパラメーターに Prompt on Launch (起動プロンプト) が選択されている場合には、Prompt ボタンが表示され、ノードレベルでこれらの値を変更できるようになります。ウィザードを使用して、各タブ値を変更し、プレビュータブで 確定 をクリックします。

_images/wf-editor-prompt-button-wizard.png

同様に、ワークフローで使用するワークフローテンプレートで、インベントリーオプションとして Prompt on Launch (起動プロンプト) が選択されている場合には、ウィザードを使用して、プロンプト時にインベントリーを指定します。親のワークフローに独自のインベントリーがある場合には、ここで指定するインベントリーは上書きされます。

_images/wf-editor-prompt-button-inventory-wizard.png

注釈

プロンプト表示が可能な必須フィールドで、デフォルト設定のないジョブテンプレートの場合は、ノード作成時にこれらの値を指定してから、選択 ボタンを有効にする必要があります。プロンプト ボタンで値を指定するまで 選択 ボタンが無効となる例として、1) ジョブテンプレートで Prompt on Launch (起動プロンプト) チェックボックスを選択しているがデフォルトを指定していない場合、または 2) 必須の survey の質問を作成しているが、デフォルトの回答を指定していない場合が挙げられます。ただし、これは認証情報には該当 しません。ノードの作成時に、ノードの起動に必要な情報を指定する必要があるので、ワークフローノードの作成時には、起動時にパスワードを必要とする認証情報は、使用できません。そのため、ジョブテンプレートで認証情報の入力を求めるプロンプトが表示される場合には、Tower により、パスワードを必要とする認証情報を選択できないようになります。

また、対象のノードで変更を適用するには、プロンプトのウィザードの終了時に、選択 をクリックする必要があります。選択しないと、変更内容が、実際にジョブテンプレートで設定した値に戻ってしまいます。

_images/wf-editor-wizard-buttons.png

ノードが作成されると、ノードにはそのジョブタイプのラベルが付けられます。各ワークフローノードに関連付けられるテンプレートは、プロセスの進行時に選択した実行シナリオに基づいて実行されます。コンパス (compass) アイコンをクリックして、各実行シナリオとそのジョブタイプの凡例を表示します。

_images/wf-editor-key-dropdown-list.png
  1. ノードにマウスカーソルを合わせると、別のノードの追加 (add node)、既存のリンクの編集 (edit link)、または選択したノードの削除 (delete node) を行うことができます。

_images/wf-editor-create-new-add-template.png
  1. ノードの追加/編集が完了したら、選択 をクリックしてすべての変更を保存し、グラフィカルビューにレンダリングします。ワークフローの構築に利用できる方法については、「ノードの構築シナリオ」を参照してください。

  2. ワークフローテンプレートのビルドが完了したら、保存 をクリックしてワークフローテンプレート全体を保存し、新しいワークフローテンプレートの詳細ページに戻ります。

重要

このペインで 閉じる をクリックしても、作業は保存されません。代わりにワークフロービジュアライザー全体を閉じて最初からやり直す必要があります。

19.7.1.1. 承認ノード

承認 ノードを選択するには、ワークフローを次に進めるためにユーザーの介入が必要です。この機能は、Playbook 間のワークフローを一時停止する手段として使用し、ユーザーはワークフローで次の Playbok に進むことを承認できるため、ユーザーが仲介するのに十分な時間を指定することも、他のトリガーを待たずにできるだけ早く次に進めることもできます。

_images/wf-node-approval-form.png

タイムアウトのデフォルトは「なし」ですが、リクエストの有効期限が切れて自動的に拒否されるまでの時間を指定できます。承認ノードの情報を選択して指定すると、グラフィカルビューで、承認ノードの横に一時停止 (pause) アイコンが表示されます。

_images/wf-node-approval-node.png

承認者は、承認ノードを含むワークフロージョブテンプレートを実行できる任意のユーザーで、組織管理者以上の権限 (そのワークフロージョブテンプレートに関連付けられた組織のもの)、またはその特定のワークフロージョブテンプレート内で明示的に割り当てられた Approve パーミッションを持つ任意のユーザーです。

_images/wf-node-approval-notifications.png

保留中の承認ノードが指定された制限時間内に承認されなかった場合 (有効期限が割り当てられている場合)、または拒否された場合には、承認ノードそれぞれ「タイムアウト」または「失敗」としてマークされ、次の「失敗したノード」に進みます。承認された場合は、「成功時」のパスが使用されます。API で、すでに承認、拒否、またはタイムアウトになったノードに POST を実行しようとすると、このアクションは冗長であり、それ以上の手順は実行されないことを通知するメッセージが表示されます。

以下は、承認ワークフローで許可されるさまざまなレベルの権限を示しています。

_images/wf-node-approval-rbac.png

19.7.1.2. ノードの構築シナリオ

親ノードの add node をクリックして兄弟ノードを追加できます。

_images/wf-editor-create-sibling-node.png

ノード間に別のノードを挿入するには、add node が表示されるまで 2 つのノード間をつなぐ線の上にマウスをかざします。add node をクリックすると自動的に 2 つのノード間にノードが挿入されます。

_images/wf-editor-insert-node-template.png

root ノードを追加して分割のシナリオを表現するには、start ボタンをもう一度クリックします。

_images/wf-editor-create-new-add-template-split.png

分割シナリオを作成するノード上にマウスをかざし、そこから分割シナリオを開始して、add node をクリックします。これで実際に、同じ親ノードから複数のノードが追加されて、兄弟ノードが作成されます。

_images/wf-editor-create-siblings.png

注釈

新規ノードの追加時には、PROMPT ボタンでワークフローテンプレートも適用します。ワークフローテンプレートにより、インベントリーおよび survey のプロンプトが表示されます。

最後に挿入したノードを取り消すには、右のペーンから何も選択せずに別のノードをクリックするか、右のペーンから キャンセル をクリックします。

以下は、ジョブテンプレートで開始される 3 つのタイプのジョブがすべて含まれるワークフローの例です。これが実行に失敗する場合は、プロジェクト同期ジョブに進み、成否にかかわらず、インベントリーの同期ジョブに進みます。

_images/wf-editor-create-new-add-template-example.png

ウィンドウの先頭にあるキーを参照して、グラフィックな説明と関連付けられる記号および色の意味を特定するのを忘れないでください。

注釈

ワークフローで、兄弟ノードにさまざまなエッジタイプが指定されていて、後続のノードがアタッチされたノードを削除した場合には、アタッチされたノードが自動的に兄弟ノードセットと結合されて、そのエッジタイプを保持します。

_images/wf-node-delete-scenario.png

以下の方法で、ノードを変更できます。

  • ノードを編集する必要がある場合に、編集するノードをクリックすると右側のペインには現在の選択内容が表示されます。変更を加えたら 選択 をクリックして変更をグラフィカルビューに適用します。

  • 既存のリンクのエッジタイプを編集するには (success (成功)/failure (失敗)/always (常時))、リンクをクリックします。右側のペインに、現在の選択内容が表示されます。変更を加えたら 保存 をクリックして変更をグラフィカルビューに適用します。

_images/wf-editor-wizard-edit-link.png
  • 別のノードに新規リンクを追加するには、各ノード上に表示される、リンク edit link アイコンをクリックします。クリックすると、リンクを追加可能なノードがハイライトされます。実行可能なオプションは、点線で表示されます。無効なオプションは、ボックス (ノード) がグレーアウトされます。このようなボックスを選択できたとしても、無効なリンクが生成されます。以下の例では、矢印で示されているように、e2e-ec20de52-project のリンク先に対する選択可能なオプションとして Demo Project が表示されます。

_images/wf-node-link-scenario.png
  • リンクを削除するには対象のリンクをクリックして、リンク解除 をクリックします。

_images/wf-editor-wizard-unlink.png

ターゲットまたは子ノードに複数の親がある場合に、このボタンは、右側のパネルにのみ表示されます。すべてのノードが常に、少なくとも 1 つ以上の他のノードにリンクされている必要があるため、必要のなくなったリンクを削除する前に、新規リンクを作成する必要があります。

設定アイコン (settings) をクリックしてビューのズーム、パン、または再配置を行います。または、ワークフローの図をドラッグして画面上で再配置するか、マウスをスクロールしてズームします。

19.8. ワークフローテンプレートの起動

以下のいずれかの方法でワークフローテンプレートを起動します。

  • ワークフロージョブテンプレートリストには、(templates-icon) ナビゲーションリンクからアクセスするか、ワークフロージョブテンプレートの詳細ビューで、下方にスクロールしてテンプレートの一覧から launch ボタンにアクセスします。

_images/wf-templates-wf-template-launch.png
  • 起動するジョブテンプレートのジョブテンプレートの詳細ビューで、起動 をクリックします。

ジョブテンプレートおよび Survey に設定される追加変数と共に、Tower は起動時にジョブテンプレートに追加される変数として同じ変数を自動的に追加します。さらに、Tower は Web ブラウザーをこのジョブのジョブの詳細ページにリダイレクトし、進捗と結果が表示されます。

_images/wf-launch-details-page-example.png

ワークフローの承認に関連するイベントは、承認リクエストに関する詳細情報とともにアクティビティーストリーム (activity-stream) に表示されます。

_images/wf-activity-stream-events.png

19.9. ワークフローテンプレートのコピー

Ansible Tower では、ワークフローテンプレートのコピー機能を使用できます。ワークフローテンプレートをコピーすることを選択した場合には、関連付けられたスケジュール、通知、またはパーミッションは コピーされません。スケジュールおよび通知は、ワークフローテンプレートのコピーを作成するユーザーまたは管理者により作成しなおす必要があります。ジョブテンプレートをコピーするユーザーには管理者権限が付与されますが、パーミッションはワークフローテンプレートには割り当てられません (コピーされません)。

  1. テンプレート ナビゲーションリンク (templates-icon) またはワークフロージョブテンプレートの詳細ビューからコピーするワークフロージョブテンプレートにアクセスし、下方にスクロールしてテンプレートの一覧からこれにアクセスします。

Wf templates - newly added wf template

  1. copy ボタンをクリックします。

新規テンプレートが、コピーしたテンプレートの名前とタイムスタンプが設定された状態で開きます。

_images/wf-list-view-copy-example.png

コピーされたテンプレートを選択して 名前 フィールドの内容を新規の名前に置き換え、他のフィールドのエントリーを指定または変更してこのページを完了します。

  1. 完了したら 保存 をクリックします。

注釈

プロジェクトが使用する認証情報で現在のユーザーに 読み取り アクセスしか割り当てられていない場合など、リソースに、適切なレベルのパーミッションが割り当てられていない関連リソースが含まれる場合に、このリソースはコピーできません。ただし、ワークフローテンプレートでは、このノードのいずれかで、権限のないジョブテンプレートを使用する場合に、ワークフローテンプレートのコピーは可能ですが、コピーしたワークフローテンプレートでは、ワークフローテンプレートノード内の適切なフィールドがなくなります。

19.10. 追加変数

注釈

ジョブ起動 API に渡される extra_vars は、以下のいずれかが該当する場合のみ有効です。

  • それらは有効な survey の変数に対応する。

  • ask_variables_on_launch が True に設定されている。

Survey 変数を渡す際に、この変数は Tower 内の追加変数 (extra_vars) として渡されます。これは、(Survey で実行するように) 追加変数をワークフローテンプレートに渡すと、インベントリーおよびプロジェクトから渡される他の変数が上書きされる可能性があるために注意が必要です。

たとえば、インベントリーの定義された変数が debug = true であるとします。この変数 debug = true がワークフローテンプレート Survey で上書きされる可能性はあります。

渡す必要のある変数が上書きされないようにするには、この変数を Survey で再定義して組み込むことができます。追加変数はインベントリー、グループおよびホストのレベルで定義できることに注意してください。

以下の表では、Ansible の変数の順序との比較で、Ansible Tower の変数の順序の動作 (階層) を示しています。

Ansible Tower 変数の順序の階層 (最後に一覧表示された win)

_images/Architecture-Tower_Variable_Precedence_Hierarchy-Workflows.png