add_host – Add a host (and alternatively a group) to the ansible-playbook in-memory inventory
Synopsis
- Use variables to create new hosts and groups in inventory for use in later plays of the same playbook.
- Takes variables so you can define the new hosts more fully.
- This module is also supported for Windows targets.
Parameters
| Parameter | Choices/Defaults | Comments |
|---|---|---|
| groups list | The groups to add the hostname to. aliases: group, groupname | |
| name string / required | The hostname/ip of the host to add to the inventory, can include a colon and a port number. aliases: host, hostname |
Notes
Note
- This module bypasses the play host loop and only runs once for all the hosts in the play, if you need it to iterate use a with-loop construct.
- The alias
hostof the parameternameis only available on Ansible 2.4 and newer. - Since Ansible 2.4, the
inventory_dirvariable is now set toNoneinstead of the ‘global inventory source’, because you can now have multiple sources. An example was added that shows how to partially restore the previous behaviour. - Windows targets are supported by this module.
See Also
See also
- group_by – Create Ansible groups based on facts
- The official documentation on the group_by module.
Examples
- name: Add host to group 'just_created' with variable foo=42
add_host:
name: '{{ ip_from_ec2 }}'
groups: just_created
foo: 42
- name: Add host to multiple groups
add_host:
hostname: '{{ new_ip }}'
groups:
- group1
- group2
- name: Add a host with a non-standard port local to your machines
add_host:
name: '{{ new_ip }}:{{ new_port }}'
- name: Add a host alias that we reach through a tunnel (Ansible 1.9 and older)
add_host:
hostname: '{{ new_ip }}'
ansible_ssh_host: '{{ inventory_hostname }}'
ansible_ssh_port: '{{ new_port }}'
- name: Add a host alias that we reach through a tunnel (Ansible 2.0 and newer)
add_host:
hostname: '{{ new_ip }}'
ansible_host: '{{ inventory_hostname }}'
ansible_port: '{{ new_port }}'
- name: Ensure inventory vars are set to the same value as the inventory_hostname has (close to pre Ansible 2.4 behaviour)
add_host:
hostname: charlie
inventory_dir: '{{ inventory_dir }}'
Status
- This module is guaranteed to have no backward incompatible interface changes going forward. [stableinterface]
- This module is maintained by the Ansible Core Team. [core]
Red Hat Support
More information about Red Hat’s support of this module is available from this Red Hat Knowledge Base article.
Authors
- Ansible Core Team
- Seth Vidal (@skvidal)
Hint
If you notice any issues in this documentation you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/add_host_module.html