diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 16:04:21 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 16:04:21 +0000 |
commit | 8a754e0858d922e955e71b253c139e071ecec432 (patch) | |
tree | 527d16e74bfd1840c85efd675fdecad056c54107 /lib/ansible/modules/add_host.py | |
parent | Initial commit. (diff) | |
download | ansible-core-8a754e0858d922e955e71b253c139e071ecec432.tar.xz ansible-core-8a754e0858d922e955e71b253c139e071ecec432.zip |
Adding upstream version 2.14.3.upstream/2.14.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'lib/ansible/modules/add_host.py')
-rw-r--r-- | lib/ansible/modules/add_host.py | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/lib/ansible/modules/add_host.py b/lib/ansible/modules/add_host.py new file mode 100644 index 0000000..b446df5 --- /dev/null +++ b/lib/ansible/modules/add_host.py @@ -0,0 +1,115 @@ +# -*- mode: python -*- + +# Copyright: (c) 2012, Seth Vidal (@skvidal) +# Copyright: Ansible Team +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +DOCUMENTATION = r''' +--- +module: add_host +short_description: Add a host (and alternatively a group) to the ansible-playbook in-memory inventory +description: +- 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. +version_added: "0.9" +options: + name: + description: + - The hostname/ip of the host to add to the inventory, can include a colon and a port number. + type: str + required: true + aliases: [ host, hostname ] + groups: + description: + - The groups to add the hostname to. + type: list + elements: str + aliases: [ group, groupname ] +extends_documentation_fragment: + - action_common_attributes + - action_common_attributes.conn + - action_common_attributes.flow + - action_core +attributes: + action: + support: full + core: + details: While parts of this action are implemented in core, other parts are still available as normal plugins and can be partially overridden + support: partial + become: + support: none + bypass_host_loop: + support: full + bypass_task_loop: + support: none + check_mode: + details: While this makes no changes to target systems the 'in memory' inventory will still be altered + support: partial + connection: + support: none + delegation: + support: none + diff_mode: + support: none + platform: + platforms: all +notes: +- The alias C(host) of the parameter C(name) is only available on Ansible 2.4 and newer. +- Since Ansible 2.4, the C(inventory_dir) variable is now set to C(None) instead 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. +- 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. +- The hosts added will not bypass the C(--limit) from the command line, so both of those need to be in agreement to make them available as play targets. + They are still available from hostvars and for delegation as a normal part of the inventory. +seealso: +- module: ansible.builtin.group_by +author: +- Ansible Core Team +- Seth Vidal (@skvidal) +''' + +EXAMPLES = r''' +- name: Add host to group 'just_created' with variable foo=42 + ansible.builtin.add_host: + name: '{{ ip_from_ec2 }}' + groups: just_created + foo: 42 + +- name: Add host to multiple groups + ansible.builtin.add_host: + hostname: '{{ new_ip }}' + groups: + - group1 + - group2 + +- name: Add a host with a non-standard port local to your machines + ansible.builtin.add_host: + name: '{{ new_ip }}:{{ new_port }}' + +- name: Add a host alias that we reach through a tunnel (Ansible 1.9 and older) + ansible.builtin.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) + ansible.builtin.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) + ansible.builtin.add_host: + hostname: charlie + inventory_dir: '{{ inventory_dir }}' + +- name: Add all hosts running this playbook to the done group + ansible.builtin.add_host: + name: '{{ item }}' + groups: done + loop: "{{ ansible_play_hosts }}" +''' |