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 even without specifying the collections: keyword. However, we recommend you use the FQCN for easy linking to the plugin documentation and to avoid conflicting with other collections that may have the same vars plugin name.

New in Ansible 2.4


  • 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"]


  • INI entry:

    yaml_valid_extensions = .yml, .yaml, .json
  • Environment variable: ANSIBLE_YAML_FILENAME_EXT



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"


  • INI entry:

    stage = VALUE
  • Environment variable: ANSIBLE_VARS_PLUGIN_STAGE


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.