1
0
Fork 0
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:
Rob Parrott 2013-02-16 20:27:38 -05:00
parent c000bd846b
commit ef17fc9f20
2 changed files with 19 additions and 3 deletions

View file

@ -48,9 +48,22 @@ class ActionModule(object):
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
# 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
allgroup = inventory.get_group('all')
allgroup.add_host(new_host)

View file

@ -5,13 +5,14 @@ DOCUMENTATION = '''
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
- 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
options:
hostname:
description:
- The hostname/ip of the host to add to the inventory
required: true
required: true
groupname:
description:
- The groupname to add the hostname to.
@ -20,4 +21,6 @@ author: Seth Vidal
examples:
- description: add host to group '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
'''