You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/docsite/rst/playbook_guide/playbooks_variables.rst
+13-10Lines changed: 13 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -199,7 +199,7 @@ You can use the `set_fact` module to combine lists into a new `merged_list` vari
199
199
- peach
200
200
- plum
201
201
- pear
202
-
202
+
203
203
tasks:
204
204
- name: Combine list1 and list2 into a merged_list var
205
205
ansible.builtin.set_fact:
@@ -425,16 +425,17 @@ Ansible does apply variable precedence, and you might have a use for it. Here is
425
425
426
426
#. command line values (for example, ``-u my_user``, these are not variables)
427
427
#. role defaults (as defined in :ref:`Role directory structure <role_directory_structure>`) [1]_
428
-
#. inventory file or script group vars [2]_
429
-
#. inventory group_vars/all [3]_
430
-
#. playbook group_vars/all [3]_
431
-
#. inventory group_vars/* [3]_
432
-
#. playbook group_vars/* [3]_
433
-
#. inventory file or script host vars [2]_
434
-
#. inventory host_vars/* [3]_
435
-
#. playbook host_vars/* [3]_
428
+
#. variables for group "all" defined inside of an inventory file or script [2]_
429
+
#. other group vars defined inside of an inventory file or script [2]_
430
+
#. inventory group_vars/all (a file in the directory group_vars/ adjacent to the inventory) [3]_
431
+
#. playbook group_vars/all (a file in the directory group_vars/ adjacent to the playbook) [3]_
432
+
#. inventory group_vars/* (a file in the directory group_vars/ adjacent to the inventory) [3]_
433
+
#. playbook group_vars/* (a file in the directory group_vars/ adjacent to the playbook) [3]_
434
+
#. host vars defined in an inventory file or script [2]_
435
+
#. inventory host_vars/* (a file in the directory host_vars/ adjacent to the inventory) [3]_
436
+
#. playbook host_vars/* (a file in the directory host_vars/ adjacent to the inventory) [3]_
436
437
#. host facts / cached set_facts [4]_
437
-
#. play vars
438
+
#. play vars (defined in the section vars for the play)
438
439
#. play vars_prompt
439
440
#. play vars_files
440
441
#. role vars (as defined in :ref:`Role directory structure <role_directory_structure>`)
@@ -446,6 +447,8 @@ Ansible does apply variable precedence, and you might have a use for it. Here is
446
447
#. include params
447
448
#. extra vars (for example, ``-e "user=my_user"``)(always win precedence)
448
449
450
+
If inventory file is located in the same directory as a playbook, adjacent group_vars/ are interpreted twice both as inventory group_vars/ and playbook group_vars/, therefore, getting precedence of the playbook group_vars.
451
+
449
452
In general, Ansible gives precedence to variables that were defined more recently, more actively, and with more explicit scope. Variables in the defaults folder inside a role are easily overridden. Anything in the vars directory of the role overrides previous versions of that variable in the namespace. Host and/or inventory variables override role defaults, but explicit includes such as the vars directory or an ``include_vars`` task override inventory variables.
450
453
451
454
Ansible merges different variables set in inventory so that more specific settings override more generic settings. For example, ``ansible_ssh_user`` specified as a group_var is overridden by ``ansible_user`` specified as a host_var. For details about the precedence of variables set in inventory, see :ref:`how_we_merge`.
0 commit comments