diff --git a/roles/aws_common/tasks/main.yml b/roles/aws_common/tasks/main.yml index b08eb67..9c90622 100644 --- a/roles/aws_common/tasks/main.yml +++ b/roles/aws_common/tasks/main.yml @@ -24,5 +24,8 @@ notify: - Restart CloudWatch Agent +- name: Store some metadata about this run + include_tasks: "write-tags.yml" + - name: Initiate the startup of any new AWS services now meta: flush_handlers diff --git a/roles/aws_common/tasks/write-tags.yml b/roles/aws_common/tasks/write-tags.yml new file mode 100644 index 0000000..a6acba9 --- /dev/null +++ b/roles/aws_common/tasks/write-tags.yml @@ -0,0 +1,28 @@ +--- + +- name: Fetch local EC2 metadata + ec2_metadata_facts: + +- name: Retrieve all available EC2 tags + ec2_tag: + region: "{{ ansible_ec2_placement_region }}" + resource: "{{ ansible_ec2_instance_id }}" + state: list + register: ec2_instance_tags + +- name: Retrieve autoscaling group + set_fact: + ec2_autoscaling_group: "{{ ec2_tags.tags['aws:autoscaling:groupName']|default('') }}" + +- block: + + - name: Get AutoscalingGroup tags + command: "aws autoscaling describe-tags --filters Name=auto-scaling-group,Values='{{ ec2_autoscaling_group }}'" + register: asg_tags_out + + - name: Parse and transform the AWS tags into a lookup table + set_fact: + asg_tags: "{{ (asg_tags_out.stdout | from_json).Tags | items2dict(key_name='Key', value_name='Value') }}" + + when: ec2_autoscaling_group != '' +