diff --git a/cloud/cloudformation b/cloud/cloudformation index ae9f2e0f26f..955278406b0 100644 --- a/cloud/cloudformation +++ b/cloud/cloudformation @@ -60,6 +60,12 @@ options: required: true default: null aliases: [] + tags: + description: + - Dictionary of tags to associate with stack and it's resources during stack creation. Cannot be updated later. + required: false + default: null + aliases: [] requirements: [ "boto" ] author: James S. Martin @@ -79,6 +85,8 @@ tasks: DiskType: ephemeral InstanceType: m1.small ClusterSize: 3 + tags: + Stack: ansible-cloudformation ''' import json @@ -163,7 +171,8 @@ def main(): region=dict(aliases=['aws_region', 'ec2_region'], required=True, choices=AWS_REGIONS), state=dict(default='present', choices=['present', 'absent']), template=dict(default=None, required=True), - disable_rollback=dict(default=False) + disable_rollback=dict(default=False), + tags=dict(default=None) ) ) @@ -173,14 +182,15 @@ def main(): template_body = open(module.params['template'], 'r').read() disable_rollback = module.params['disable_rollback'] template_parameters = module.params['template_parameters'] + tags = module.params['tags'] if not r: if 'AWS_REGION' in os.environ: r = os.environ['AWS_REGION'] elif 'EC2_REGION' in os.environ: r = os.environ['EC2_REGION'] - - + + # convert the template parameters ansible passes into a tuple for boto template_parameters_tup = [(k, v) for k, v in template_parameters.items()] @@ -203,7 +213,8 @@ def main(): cfn.create_stack(stack_name, parameters=template_parameters_tup, template_body=template_body, disable_rollback=disable_rollback, - capabilities=['CAPABILITY_IAM']) + capabilities=['CAPABILITY_IAM'], + tags=tags) operation = 'CREATE' except Exception, err: error_msg = boto_exception(err)