mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
add the ability to take variables in the add_host module, and be willing to parse a host:port hostname handed to add_host
This commit is contained in:
parent
c000bd846b
commit
ef17fc9f20
2 changed files with 19 additions and 3 deletions
|
@ -48,9 +48,22 @@ class ActionModule(object):
|
||||||
|
|
||||||
result = {'changed': True}
|
result = {'changed': True}
|
||||||
|
|
||||||
new_host = Host(args['hostname'])
|
# Parse out any hostname:port patterns
|
||||||
|
new_hostname = args['hostname']
|
||||||
|
if ":" in new_hostname:
|
||||||
|
new_hostname, new_port = new_hostname.split(":")
|
||||||
|
args['ansible_ssh_port'] = new_port
|
||||||
|
|
||||||
|
# create host and get inventory
|
||||||
|
new_host = Host(new_hostname)
|
||||||
inventory = self.runner.inventory
|
inventory = self.runner.inventory
|
||||||
|
|
||||||
|
# Add any variables to the new_host
|
||||||
|
for k in args.keys():
|
||||||
|
if k != 'hostname' and k != 'groupname':
|
||||||
|
new_host.set_variable(k, args[k])
|
||||||
|
|
||||||
|
|
||||||
# add the new host to the 'all' group
|
# add the new host to the 'all' group
|
||||||
allgroup = inventory.get_group('all')
|
allgroup = inventory.get_group('all')
|
||||||
allgroup.add_host(new_host)
|
allgroup.add_host(new_host)
|
||||||
|
|
|
@ -5,13 +5,14 @@ DOCUMENTATION = '''
|
||||||
module: add_host
|
module: add_host
|
||||||
short_description: add a host (and alternatively a group) to the ansible-playbook in-memory inventory
|
short_description: add a host (and alternatively a group) to the ansible-playbook in-memory inventory
|
||||||
description:
|
description:
|
||||||
- Use variables to create new hosts and groups in inventory for use in later plays of the same playbook
|
- 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.
|
||||||
version_added: 0.9
|
version_added: 0.9
|
||||||
options:
|
options:
|
||||||
hostname:
|
hostname:
|
||||||
description:
|
description:
|
||||||
- The hostname/ip of the host to add to the inventory
|
- The hostname/ip of the host to add to the inventory
|
||||||
required: true
|
required: true
|
||||||
groupname:
|
groupname:
|
||||||
description:
|
description:
|
||||||
- The groupname to add the hostname to.
|
- The groupname to add the hostname to.
|
||||||
|
@ -20,4 +21,6 @@ author: Seth Vidal
|
||||||
examples:
|
examples:
|
||||||
- description: add host to group 'just_created'
|
- description: add host to group 'just_created'
|
||||||
code: add_host hostname=${ip_from_ec2create} groupname=just_created
|
code: add_host hostname=${ip_from_ec2create} groupname=just_created
|
||||||
|
- description add a host with a non-standard port local to your machines
|
||||||
|
code: add_host hostname='${new_ip}:${new_port}' ansible_ssh_port='${new_port}' ansible_ssh_host='${new_ip}' groupname=cloud_hosts
|
||||||
'''
|
'''
|
Loading…
Add table
Reference in a new issue