Merge remote branch 'origin/devel' into devel
This commit is contained in:
commit
dbbb2bc269
2 changed files with 64 additions and 25 deletions
|
@ -36,7 +36,7 @@ options:
|
||||||
aliases: []
|
aliases: []
|
||||||
group:
|
group:
|
||||||
description:
|
description:
|
||||||
- security group to use with the instance
|
- security group (or list of groups) to use with the instance
|
||||||
required: false
|
required: false
|
||||||
default: null
|
default: null
|
||||||
aliases: []
|
aliases: []
|
||||||
|
@ -190,6 +190,18 @@ EXAMPLES = '''
|
||||||
count: 5
|
count: 5
|
||||||
instance_tags: '{"db":"postgres"}' monitoring=yes'
|
instance_tags: '{"db":"postgres"}' monitoring=yes'
|
||||||
|
|
||||||
|
# Multiple groups example
|
||||||
|
local_action:
|
||||||
|
module: ec2
|
||||||
|
keypair: mykey
|
||||||
|
group: [databases, internal-services, sshable, and-so-forth]
|
||||||
|
instance_type: m1.large
|
||||||
|
image: ami-6e649707
|
||||||
|
wait: yes
|
||||||
|
wait_timeout: 500
|
||||||
|
count: 5
|
||||||
|
instance_tags: '{"db":"postgres"}' monitoring=yes'
|
||||||
|
|
||||||
# VPC example
|
# VPC example
|
||||||
- local_action:
|
- local_action:
|
||||||
module: ec2
|
module: ec2
|
||||||
|
@ -215,7 +227,7 @@ def main():
|
||||||
argument_spec = dict(
|
argument_spec = dict(
|
||||||
key_name = dict(required=True, aliases = ['keypair']),
|
key_name = dict(required=True, aliases = ['keypair']),
|
||||||
id = dict(),
|
id = dict(),
|
||||||
group = dict(),
|
group = dict(type='list'),
|
||||||
group_id = dict(),
|
group_id = dict(),
|
||||||
region = dict(choices=['eu-west-1', 'sa-east-1', 'us-east-1', 'ap-northeast-1', 'us-west-2', 'us-west-1', 'ap-southeast-1', 'ap-southeast-2']),
|
region = dict(choices=['eu-west-1', 'sa-east-1', 'us-east-1', 'ap-northeast-1', 'us-west-2', 'us-west-1', 'ap-southeast-1', 'ap-southeast-2']),
|
||||||
zone = dict(),
|
zone = dict(),
|
||||||
|
@ -294,14 +306,18 @@ def main():
|
||||||
# Here we try to lookup the group id from the security group name - if group is set.
|
# Here we try to lookup the group id from the security group name - if group is set.
|
||||||
if group_name:
|
if group_name:
|
||||||
grp_details = ec2.get_all_security_groups()
|
grp_details = ec2.get_all_security_groups()
|
||||||
|
if type(group_name) == list:
|
||||||
|
group_id = list(filter(lambda grp: str(grp.id) if str(tmp) in str(grp) else None, grp_details) for tmp in group_name)
|
||||||
|
elif type(group_name) == str:
|
||||||
for grp in grp_details:
|
for grp in grp_details:
|
||||||
if str(group_name) in str(grp):
|
if str(group_name) in str(grp):
|
||||||
group_id = str(grp.id)
|
group_id = [str(grp.id)]
|
||||||
|
group_name = [group_name]
|
||||||
# Now we try to lookup the group id testing if group exists.
|
# Now we try to lookup the group id testing if group exists.
|
||||||
elif group_id:
|
elif group_id:
|
||||||
grp_details = ec2.get_all_security_groups(group_ids=group_id)
|
grp_details = ec2.get_all_security_groups(group_ids=group_id)
|
||||||
grp_item = grp_details[0]
|
grp_item = grp_details[0]
|
||||||
group_name = grp_item.name
|
group_name = [grp_item.name ]
|
||||||
except boto.exception.NoAuthHandlerFound, e:
|
except boto.exception.NoAuthHandlerFound, e:
|
||||||
module.fail_json(msg = str(e))
|
module.fail_json(msg = str(e))
|
||||||
|
|
||||||
|
@ -338,9 +354,9 @@ def main():
|
||||||
'user_data': user_data}
|
'user_data': user_data}
|
||||||
|
|
||||||
if vpc_subnet_id:
|
if vpc_subnet_id:
|
||||||
params['security_group_ids'] = [group_id]
|
params['security_group_ids'] = group_id
|
||||||
else:
|
else:
|
||||||
params['security_groups'] = [group_name]
|
params['security_groups'] = group_name
|
||||||
|
|
||||||
res = ec2.run_instances(**params)
|
res = ec2.run_instances(**params)
|
||||||
except boto.exception.BotoServerError, e:
|
except boto.exception.BotoServerError, e:
|
||||||
|
|
|
@ -108,12 +108,21 @@ def do_ini(module, filename, section=None, option=None, value=None, state='prese
|
||||||
changed = True
|
changed = True
|
||||||
else:
|
else:
|
||||||
if option is not None:
|
if option is not None:
|
||||||
|
if type(option) == str:
|
||||||
try:
|
try:
|
||||||
if cp.get(section, option):
|
if cp.get(section, option):
|
||||||
cp.remove_option(section, option)
|
cp.remove_option(section, option)
|
||||||
changed = True
|
changed = True
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
else:
|
||||||
|
for o in option:
|
||||||
|
try:
|
||||||
|
if cp.get(section, o):
|
||||||
|
cp.remove_option(section, o)
|
||||||
|
changed = True
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
if state == 'present':
|
if state == 'present':
|
||||||
if cp.has_section(section) == False:
|
if cp.has_section(section) == False:
|
||||||
|
@ -124,6 +133,20 @@ def do_ini(module, filename, section=None, option=None, value=None, state='prese
|
||||||
changed = True
|
changed = True
|
||||||
|
|
||||||
if option is not None and value is not None:
|
if option is not None and value is not None:
|
||||||
|
olist = []
|
||||||
|
vlist = []
|
||||||
|
if type(option) == str and type(value) == str:
|
||||||
|
olist.append(option)
|
||||||
|
vlist.append(value)
|
||||||
|
else:
|
||||||
|
olist = list(option)
|
||||||
|
vlist = list(value)
|
||||||
|
if len(olist) != len(vlist):
|
||||||
|
module.fail_json(msg="Option and value lists must be of same lengths")
|
||||||
|
n = 0
|
||||||
|
for option in olist:
|
||||||
|
value = vlist[n]
|
||||||
|
n = n + 1
|
||||||
try:
|
try:
|
||||||
oldvalue = cp.get(section, option)
|
oldvalue = cp.get(section, option)
|
||||||
if str(value) != str(oldvalue):
|
if str(value) != str(oldvalue):
|
||||||
|
@ -157,8 +180,8 @@ def main():
|
||||||
argument_spec = dict(
|
argument_spec = dict(
|
||||||
dest = dict(required=True),
|
dest = dict(required=True),
|
||||||
section = dict(required=True),
|
section = dict(required=True),
|
||||||
option = dict(required=False),
|
option = dict(required=False, type='list'),
|
||||||
value = dict(required=False),
|
value = dict(required=False, type='list'),
|
||||||
backup = dict(default='no', type='bool'),
|
backup = dict(default='no', type='bool'),
|
||||||
state = dict(default='present', choices=['present', 'absent'])
|
state = dict(default='present', choices=['present', 'absent'])
|
||||||
),
|
),
|
||||||
|
|
Loading…
Reference in a new issue