ansible.builtin.group_by – Create Ansible groups based on facts

Note

This module is part of ansible-core and included in all Ansible installations. In most cases, you can use the short module name group_by even without specifying the collections: keyword. However, 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 0.9: of ansible.builtin

Synopsis

  • Use facts to create ad-hoc groups that can be used later in a playbook.

  • This module is also supported for Windows targets.

Note

This module has a corresponding action plugin.

Parameters

Parameter

Comments

key

string / required

The variables whose values will be used as groups.

parents

list / elements=string

added in 2.4 of ansible.builtin

The list of the parent groups.

Default: “all”

Notes

Note

  • Spaces in group names are converted to dashes ‘-‘.

  • This module is also supported for Windows targets.

  • Though this module does not change the remote host, we do provide ‘changed’ status as it can be useful for those trying to track inventory changes.

See Also

See also

ansible.builtin.add_host

The official documentation on the ansible.builtin.add_host module.

Examples

- name: Create groups based on the machine architecture
  ansible.builtin.group_by:
    key: machine_{{ ansible_machine }}

- name: Create groups like 'virt_kvm_host'
  ansible.builtin.group_by:
    key: virt_{{ ansible_virtualization_type }}_{{ ansible_virtualization_role }}

- name: Create nested groups
  ansible.builtin.group_by:
    key: el{{ ansible_distribution_major_version }}-{{ ansible_architecture }}
    parents:
      - el{{ ansible_distribution_major_version }}

- name: Add all active hosts to a static group
  ansible.builtin.group_by:
    key: done

Authors

  • Jeroen Hoekx (@jhoekx)