- name: Launching NAT Gateway and allocate a new eip. ec2_vpc_nat_gateway: region: us-west-2 state: present subnet_id: "{{ test_subnet_id }}" wait: yes wait_timeout: 600 register: nat - debug: var: nat - fail: msg: "Failed to create" when: '"{{ nat["changed"] }}" != "True"' - name: Launch a new gateway only if one does not exist already in this subnet. ec2_vpc_nat_gateway: if_exist_do_not_create: yes region: us-west-2 state: present subnet_id: "{{ test_subnet_id }}" wait: yes wait_timeout: 600 register: nat_idempotent - debug: var: nat_idempotent - fail: msg: "Failed to be idempotent" when: '"{{ nat_idempotent["changed"] }}" == "True"' - name: Launching NAT Gateway and allocate a new eip even if one already exists in the subnet. ec2_vpc_nat_gateway: region: us-west-2 state: present subnet_id: "{{ test_subnet_id }}" wait: yes wait_timeout: 600 register: new_nat - debug: var: new_nat - fail: msg: "Failed to create" when: '"{{ new_nat["changed"] }}" != "True"' - name: Launching NAT Gateway with allocation id, this call is idempotent and will not create anything. ec2_vpc_nat_gateway: allocation_id: eipalloc-1234567 region: us-west-2 state: present subnet_id: "{{ test_subnet_id }}" wait: yes wait_timeout: 600 register: nat_with_eipalloc - debug: var: nat_with_eipalloc - fail: msg: 'Failed to be idempotent.' when: '"{{ nat_with_eipalloc["changed"] }}" == "True"' - name: Delete the 1st nat gateway and do not wait for it to finish ec2_vpc_nat_gateway: region: us-west-2 nat_gateway_id: "{{ nat.nat_gateway_id }}" state: absent - name: Delete the nat_with_eipalloc and release the eip ec2_vpc_nat_gateway: region: us-west-2 nat_gateway_id: "{{ new_nat.nat_gateway_id }}" release_eip: yes state: absent wait: yes wait_timeout: 600