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}
|
||||
|
||||
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)
|
||||
|
|
|
@ -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
|
||||
'''
|
Loading…
Reference in a new issue