ansible.builtin.host_group_vars vars – In charge of loading group_vars and host_vars


This vars plugin is part of ansible-core and included in all Ansible installations. In most cases, you can use the short plugin name host_group_vars. However, we recommend you use the Fully Qualified Collection Name (FQCN) ansible.builtin.host_group_vars for easy linking to the plugin documentation and to avoid conflicting with other collections that may have the same vars plugin name.


  • Loads YAML vars into corresponding groups/hosts in group_vars/ and host_vars/ directories.

  • Files are restricted by extension to one of .yaml, .json, .yml or no extension.

  • Hidden (starting with ‘.’) and backup (ending with ‘~’) files and directories are ignored.

  • Only applies to inventory sources that are existing paths.

  • Starting in 2.10, this plugin requires enabling and is enabled by default.


The below requirements are needed on the local controller node that executes this vars.

  • Enabled in configuration





list / elements=string

Check all of these extensions when looking for ‘variable’ files which should be YAML or JSON or vaulted versions of these.

This affects vars_files, include_vars, inventory and vars plugins among others.

Default: [".yml", ".yaml", ".json"]




added in ansible-base 2.10

Control when this vars plugin may be executed.

Setting this option to all will run the vars plugin after importing inventory and whenever it is demanded by a task.

Setting this option to task will only run the vars plugin whenever it is demanded by a task.

Setting this option to inventory will only run the vars plugin after parsing inventory.

If this option is omitted, the global RUN_VARS_PLUGINS configuration is used to determine when to execute the vars plugin.


  • "all"

  • "task"

  • "inventory"



Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.