ansible.builtin.yaml - Uses a specific YAML file as an inventory source.
This module is part of ansible-base and included in all Ansible installations. In most cases, you can use the short module name yaml even without specifying the collections: keyword. Despite that, we recommend you use the FQCN for easy linking to the module documentation and to avoid conflicting with other collections that may have the same module name.
New in version 2.4: of ansible.builtin
Synopsis
- YAML-based inventory, should start with the all group and contain hosts/vars/children entries.
- Host entries can have sub-entries defined, which will be treated as variables.
- Vars entries are normal group vars.
- Children are 'child groups', which can also have their own vars/hosts/children and so on.
- File MUST have a valid extension, defined in configuration.
Parameters
Parameter Choices/Defaults Configuration Comments list / elements=string
Default:
[".yaml", ".yml", ".json"]
ini entries:
[defaults]
yaml_valid_extensions = ['.yaml', '.yml', '.json'][inventory_plugin_yaml]
yaml_valid_extensions = ['.yaml', '.yml', '.json']env:ANSIBLE_YAML_FILENAME_EXT
env:ANSIBLE_INVENTORY_PLUGIN_EXTS
list of 'valid' extensions for files containing YAML
Notes
- If you want to set vars for the all group inside the inventory file, the all group must be the first entry in the file.
- Whitelisted in configuration by default.
Examples
all: # keys must be unique, i.e. only one 'hosts' per group hosts: test1: test2: host_var: value vars: group_all_var: value children: # key order does not matter, indentation does other_group: children: group_x: hosts: test5 # Note that one machine will work without a colon #group_x: # hosts: # test5 # But this won't # test7 # group_y: hosts: test6: # So always use a colon vars: g2_var2: value3 hosts: test4: ansible_host: 127.0.0.1 last_group: hosts: test1 # same host as above, additional group membership vars: group_last_var: value