# yaml – Uses a specific YAML file as an inventory source

New in version 2.4.

- Synopsis
- Parameters
- Notes
- Examples
- Status

## 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
--- | --- | --- | ---
yaml_extensions list | 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

Note

- 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

## Status

- This inventory is not guaranteed to have a backwards compatible interface. [preview]
- This inventory is maintained by the Ansible Community. [community]

### Authors

- UNKNOWN

Hint

If you notice any issues in this documentation, you can edit this document to improve it.

Hint

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.