ansible/test/integration/targets/ec2_instance/tasks/checkmode_tests.yml
Andrea Tartaglia da1a621bd9 Removed nested role for ec2_instance tests
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
2019-07-02 17:48:07 -04:00

182 lines
5.8 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
- block:
- name: Make basic instance
ec2_instance:
name: "{{ resource_prefix }}-checkmode-comparison"
image_id: "{{ ec2_ami_image[aws_region] }}"
security_groups: "{{ sg.group_id }}"
instance_type: t2.micro
vpc_subnet_id: "{{ testing_subnet_a.subnet.id }}"
wait: false
<<: *aws_connection_info
register: basic_instance
- name: Make basic instance(check mode)
ec2_instance:
name: "{{ resource_prefix }}-checkmode-comparison-checkmode"
image_id: "{{ ec2_ami_image[aws_region] }}"
security_groups: "{{ sg.group_id }}"
instance_type: t2.micro
vpc_subnet_id: "{{ testing_subnet_b.subnet.id }}"
<<: *aws_connection_info
check_mode: yes
- name: fact presented ec2 instance
ec2_instance_info:
filters:
"tag:Name": "{{ resource_prefix }}-checkmode-comparison"
<<: *aws_connection_info
register: presented_instance_fact
- name: fact checkmode ec2 instance
ec2_instance_info:
filters:
"tag:Name": "{{ resource_prefix }}-checkmode-comparison-checkmode"
<<: *aws_connection_info
register: checkmode_instance_fact
- name: Confirm whether the check mode is working normally.
assert:
that:
- "{{ presented_instance_fact.instances | length }} > 0"
- "{{ checkmode_instance_fact.instances | length }} == 0"
- name: Stop instance in check mode.
ec2_instance:
name: "{{ resource_prefix }}-checkmode-comparison"
state: stopped
vpc_subnet_id: "{{ testing_subnet_a.subnet.id }}"
<<: *aws_connection_info
check_mode: yes
- name: fact ec2 instance
ec2_instance_info:
filters:
"tag:Name": "{{ resource_prefix }}-checkmode-comparison"
<<: *aws_connection_info
register: confirm_checkmode_stopinstance_fact
- name: Verify that it was not stopped.
assert:
that:
- '"{{ confirm_checkmode_stopinstance_fact.instances[0].state.name }}" != "stopped"'
- name: Stop instance.
ec2_instance:
name: "{{ resource_prefix }}-checkmode-comparison"
state: stopped
vpc_subnet_id: "{{ testing_subnet_a.subnet.id }}"
<<: *aws_connection_info
register: instance_stop
until: not instance_stop.failed
retries: 10
- name: fact stopped ec2 instance
ec2_instance_info:
filters:
"tag:Name": "{{ resource_prefix }}-checkmode-comparison"
<<: *aws_connection_info
register: confirm_stopinstance_fact
- name: Verify that it was stopped.
assert:
that:
- '"{{ confirm_stopinstance_fact.instances[0].state.name }}" in ["stopped", "stopping"]'
- name: Running instance in check mode.
ec2_instance:
name: "{{ resource_prefix }}-checkmode-comparison"
state: running
vpc_subnet_id: "{{ testing_subnet_a.subnet.id }}"
<<: *aws_connection_info
check_mode: yes
- name: fact ec2 instance
ec2_instance_info:
filters:
"tag:Name": "{{ resource_prefix }}-checkmode-comparison"
<<: *aws_connection_info
register: confirm_checkmode_runninginstance_fact
- name: Verify that it was not running.
assert:
that:
- '"{{ confirm_checkmode_runninginstance_fact.instances[0].state.name }}" != "running"'
- name: Running instance.
ec2_instance:
name: "{{ resource_prefix }}-checkmode-comparison"
state: running
vpc_subnet_id: "{{ testing_subnet_a.subnet.id }}"
<<: *aws_connection_info
- name: fact ec2 instance.
ec2_instance_info:
filters:
"tag:Name": "{{ resource_prefix }}-checkmode-comparison"
<<: *aws_connection_info
register: confirm_runninginstance_fact
- name: Verify that it was running.
assert:
that:
- '"{{ confirm_runninginstance_fact.instances[0].state.name }}" == "running"'
- name: Terminate instance in check mode.
ec2_instance:
name: "{{ resource_prefix }}-checkmode-comparison"
state: absent
vpc_subnet_id: "{{ testing_subnet_a.subnet.id }}"
<<: *aws_connection_info
check_mode: yes
- name: fact ec2 instance
ec2_instance_info:
filters:
"tag:Name": "{{ resource_prefix }}-checkmode-comparison"
<<: *aws_connection_info
register: confirm_checkmode_terminatedinstance_fact
- name: Verify that it was not terminated,
assert:
that:
- '"{{ confirm_checkmode_terminatedinstance_fact.instances[0].state.name }}" != "terminated"'
- name: Terminate instance.
ec2_instance:
name: "{{ resource_prefix }}-checkmode-comparison"
state: absent
vpc_subnet_id: "{{ testing_subnet_a.subnet.id }}"
<<: *aws_connection_info
- name: fact ec2 instance
ec2_instance_info:
filters:
"tag:Name": "{{ resource_prefix }}-checkmode-comparison"
<<: *aws_connection_info
register: confirm_terminatedinstance_fact
- name: Verify that it was terminated,
assert:
that:
- '"{{ confirm_terminatedinstance_fact.instances[0].state.name }}" == "terminated"'
always:
- name: Terminate instance
ec2:
instance_ids: "{{ basic_instance.instance_ids }}"
state: absent
<<: *aws_connection_info
register: removed
until: removed is not failed
ignore_errors: yes
retries: 10