da1a621bd9
Also moved environment setup and environment cleanup to separate task files Added CI group Updated c4.large instances to t3.nano, use ENA enabled AMI Updated AMIs with Amazon Linux AMI Updated us-east-1 AMI id Specify EBS size typo, volume_size Removed 'state: running', updated AMI with amz ami Also added several wait: false to speed things up Check for instance state, correctly Accept pending as valid state tags_and_vpc_settings do not wait for instance to complete wait for termination protected instance Updated IAM role name to match with policy Skip env cleanup when in CI Do not wait instance in external_resource_attach ENI remove is done in env_cleanup/CI wait some time for instance_profile instnace to be up Updated ebs_optimized_images Corrected task name Added aws_cleanup var in cloud-config-aws typo in runme default aws_cleanup to true
141 lines
No EOL
3.9 KiB
YAML
141 lines
No EOL
3.9 KiB
YAML
- name: set connection information for all tasks
|
|
set_fact:
|
|
aws_connection_info: &aws_connection_info
|
|
aws_access_key: "{{ aws_access_key }}"
|
|
aws_secret_key: "{{ aws_secret_key }}"
|
|
security_token: "{{ security_token }}"
|
|
region: "{{ aws_region }}"
|
|
no_log: true
|
|
# Make custom ENIs and attach via the `network` parameter
|
|
- ec2_eni:
|
|
delete_on_termination: true
|
|
subnet_id: "{{ testing_subnet_b.subnet.id }}"
|
|
security_groups:
|
|
- "{{ sg.group_id }}"
|
|
<<: *aws_connection_info
|
|
register: eni_a
|
|
- ec2_eni:
|
|
delete_on_termination: true
|
|
subnet_id: "{{ testing_subnet_b.subnet.id }}"
|
|
security_groups:
|
|
- "{{ sg.group_id }}"
|
|
<<: *aws_connection_info
|
|
register: eni_b
|
|
- ec2_eni:
|
|
delete_on_termination: true
|
|
subnet_id: "{{ testing_subnet_b.subnet.id }}"
|
|
security_groups:
|
|
- "{{ sg.group_id }}"
|
|
<<: *aws_connection_info
|
|
register: eni_c
|
|
|
|
- ec2_key:
|
|
name: "{{ resource_prefix }}_test_key"
|
|
<<: *aws_connection_info
|
|
|
|
- name: Make instance in the testing subnet created in the test VPC
|
|
ec2_instance:
|
|
name: "{{ resource_prefix }}-test-eni-vpc"
|
|
key_name: "{{ resource_prefix }}_test_key"
|
|
network:
|
|
interfaces:
|
|
- id: "{{ eni_a.interface.id }}"
|
|
image_id: "{{ ec2_ami_image[aws_region] }}"
|
|
availability_zone: '{{ aws_region }}b'
|
|
tags:
|
|
TestId: "{{ resource_prefix }}"
|
|
instance_type: t2.micro
|
|
wait: false
|
|
<<: *aws_connection_info
|
|
register: in_test_vpc
|
|
|
|
- name: "Gather {{ resource_prefix }}-test-eni-vpc facts"
|
|
ec2_instance_facts:
|
|
filters:
|
|
"tag:Name": '{{ resource_prefix }}-test-eni-vpc'
|
|
<<: *aws_connection_info
|
|
register: in_test_vpc_instance
|
|
|
|
- assert:
|
|
that:
|
|
- 'in_test_vpc_instance.instances.0.key_name == "{{ resource_prefix }}_test_key"'
|
|
- '(in_test_vpc_instance.instances.0.network_interfaces | length) == 1'
|
|
|
|
- name: Add a second interface
|
|
ec2_instance:
|
|
name: "{{ resource_prefix }}-test-eni-vpc"
|
|
network:
|
|
interfaces:
|
|
- id: "{{ eni_a.interface.id }}"
|
|
- id: "{{ eni_b.interface.id }}"
|
|
image_id: "{{ ec2_ami_image[aws_region] }}"
|
|
tags:
|
|
TestId: "{{ resource_prefix }}"
|
|
instance_type: t2.micro
|
|
wait: false
|
|
<<: *aws_connection_info
|
|
register: add_interface
|
|
until: add_interface is not failed
|
|
ignore_errors: yes
|
|
retries: 10
|
|
|
|
- name: Make instance in the testing subnet created in the test VPC(check mode)
|
|
ec2_instance:
|
|
name: "{{ resource_prefix }}-test-eni-vpc-checkmode"
|
|
key_name: "{{ resource_prefix }}_test_key"
|
|
network:
|
|
interfaces:
|
|
- id: "{{ eni_c.interface.id }}"
|
|
image_id: "{{ ec2_ami_image[aws_region] }}"
|
|
availability_zone: '{{ aws_region }}b'
|
|
tags:
|
|
TestId: "{{ resource_prefix }}"
|
|
instance_type: t2.micro
|
|
<<: *aws_connection_info
|
|
check_mode: yes
|
|
|
|
- name: "fact presented ec2 instance"
|
|
ec2_instance_info:
|
|
filters:
|
|
"tag:Name": "{{ resource_prefix }}-test-eni-vpc"
|
|
<<: *aws_connection_info
|
|
register: presented_instance_fact
|
|
|
|
- name: "fact checkmode ec2 instance"
|
|
ec2_instance_info:
|
|
filters:
|
|
"tag:Name": "{{ resource_prefix }}-test-eni-vpc-checkmode"
|
|
<<: *aws_connection_info
|
|
register: checkmode_instance_fact
|
|
|
|
- name: "Confirm existence of instance id."
|
|
assert:
|
|
that:
|
|
- "{{ presented_instance_fact.instances | length }} > 0"
|
|
- "{{ checkmode_instance_fact.instances | length }} == 0"
|
|
|
|
- name: Terminate instance
|
|
ec2_instance:
|
|
filters:
|
|
tag:TestId: "{{ resource_prefix }}"
|
|
state: absent
|
|
wait: false
|
|
<<: *aws_connection_info
|
|
register: result
|
|
- assert:
|
|
that: result.changed
|
|
|
|
- name: Terminate instance
|
|
ec2_instance:
|
|
instance_ids: "{{ in_test_vpc.instance_ids }}"
|
|
state: absent
|
|
wait: false
|
|
<<: *aws_connection_info
|
|
register: result
|
|
- assert:
|
|
that: not result.changed
|
|
|
|
- ec2_key:
|
|
name: "{{ resource_prefix }}_test_key"
|
|
state: absent
|
|
<<: *aws_connection_info |