Posted at

Ansible2 変数の優先度

More than 3 years have passed since last update.


Ansible2 変数の優先度

意外と「Ansible 変数 優先度」とかでググッても出てこないので、こちらにメモします

内容は、ドキュメントVariables — Ansible Documentationで説明されてるものを逆順にして日本語化しただけです。

逆順にしたのは、単純にそのほうが自分にとって見やすいからです。


Ansible2 変数の優先度ランキング

つよい(確信)

- extra vars

- タスクのvars

- ブロックのvars

- ロールのvars/includeした変数ファイル

- set_facts

- 処理でregisterした変数

- 処理内vars_filesで指定のファイルで定義された変数

- 処理内vars_promptでプロンプトから渡された変数

- 処理内のvarsで定義された変数

- ファクト(setupで拾ってきた値)

- Playbookで定義されたhost_vars

- Playbookで定義されたgroup_vars

- インベントリで定義されたhost_vars

- インベントリで定義されたgroup_vars

- インベントリで定義された変数

- ロールのデフォルト(/roles/*/defaults/main.yml)


まとめ

例外はありますが、


  • 要素で定義した変数は要素の集合で定義した変数より強い

  • タスク > vars > 処理(Play) > Playbook > インベントリ > デフォルト

って印象です。


そんなわけで

「あれ?varsで定義した変数、group_varsで上書きしてるのにな〜」

みたいなことにならない様に、しっかり頭に入れておきたい所です。