検索

20.13. Extra variables

download PDF

survey 変数を渡すと、Automation controller 内の追加変数 (extra_vars) として渡されます。ただし、(Survey の場合と同様に) 追加の変数をジョブテンプレートに渡すと、インベントリーおよびプロジェクトから渡される他の変数がオーバーライドされる可能性があります。

デフォルトでは、extra_vars!unsafe とマークされます。ただし、ジョブテンプレートの Extra Variables でユーザーが指定したものは、そのようにマークされません。これらは、ジョブテンプレートを追加または編集する権限を持つユーザーのみが追加できるため、信頼できるものです。たとえば、ネストされた変数は、プロンプトとして入力されたときに展開されません。Jinja の括弧は文字列として扱われるためです。安全でない変数の詳細は、Unsafe or raw strings を参照してください。

注記

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

  • それらは有効な survey の変数に対応する。
  • ask_variables_on_launchTrue に設定されている。

debug = true のインベントリーの変数が定義されています。この変数 debug = true は、ジョブテンプレート Survey でオーバーライドされる可能性があります。

渡す変数がオーバーライドされないようにするには、Survey で変数を再定義して変数が含まれていることを確認します。追加の変数は、インベントリー、グループ、およびホストのレベルで定義できます。

ALLOW_JINJA_IN_EXTRA_VARS パラメーターを指定する場合は、Automation Controller 管理ガイドコントローラーのヒントと裏技 セクションを参照して、Controller UI の Jobs Settings 画面でパラメーターを設定してください。

ジョブテンプレートの追加変数ディクショナリーは Survey 変数にマージされます。

以下は、YAML および JSON 形式の extra_vars の簡略化された例です。

  • YAML 形式の設定:
launch_to_orbit: true
satellites:
  - sputnik
  - explorer
  - satcom
  • JSON 形式の設定:
{
  "launch_to_orbit": true,
  "satellites": ["sputnik", "explorer", "satcom"]
}

次の表は、automation controller での変数の順序に関する動作 (階層) を、Ansible と比較したものです。

表20.1 Automation Controller 変数の優先順位の階層 (最後にリストされたものが優先されます)
AnsibleAutomation Controller

ロールのデフォルト

ロールのデフォルト

動的インベントリー変数

動的インベントリー変数

インベントリー変数

Automation Controller インベントリー変数

インベントリーの group_vars

Automation Controller グループ変数

インベントリーの host_vars

Automation Controller ホスト変数

Playbook の group_vars

Playbook の group_vars

Playbook の host_vars

Playbook の host_vars

ホストのファクト

ホストのファクト

登録された変数

登録された変数

ファクトの設定

ファクトの設定

プレイ変数

プレイ変数

プレイの vars_prompt

(サポート対象外)

プレイの vars_files

プレイの vars_files

ロールと include 変数

ロールと include 変数

ブロック変数

ブロック変数

タスク変数

タスク変数

追加変数

ジョブテンプレートの追加変数

 

ジョブテンプレートの Survey (デフォルト)

 

ジョブ起動の追加変数

20.13.1. ジョブテンプレートの起動

ジョブを手動で再起動する代わりに、launch_typerelaunch に設定することで再起動を指定します。再起動の動作は、extra_vars を継承しないという点で、起動の動作とは異なります。

ジョブの再起動は継承ロジックを使用しません。再起動されるジョブに対して計算されたものと同じ extra_vars を使用します。

extra_vars を指定せずにジョブテンプレートを起動すると、j1 というジョブが作成されます。次に、ジョブテンプレートを編集し、extra_vars を追加します ("{ "hello": "world" }" の追加など)。

j1 を再起動すると j2 が作成されますが、継承するロジックがなく、j1 には extra_vars がないため、j2 には extra_vars が指定されません。

j1 の作成後に追加した extra_vars を使用してジョブテンプレートを起動すると、作成された再起動ジョブ (j3) には extra_vars が含まれます。j3 を再起動すると、extra_vars も含まれる j4 が作成されます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.