--- - block: - name: set up aws connection info 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: yes - name: Ensure the resource doesn't exist rds_instance: id: "{{ instance_id }}" state: absent skip_final_snapshot: True <<: *aws_connection_info register: result - assert: that: - not result.changed ignore_errors: yes - name: Create a mariadb instance rds_instance: id: "{{ instance_id }}" state: present engine: mariadb username: "{{ username }}" password: "{{ password }}" db_instance_class: "{{ db_instance_class }}" allocated_storage: "{{ allocated_storage }}" <<: *aws_connection_info register: result - name: Delete the DB instance rds_instance: id: "{{ instance_id }}" state: absent final_snapshot_identifier: "{{ instance_id }}" <<: *aws_connection_info register: result - assert: that: - result.changed - "result.final_snapshot.db_instance_identifier == '{{ instance_id }}'" - name: Check that snapshot exists rds_snapshot_facts: db_snapshot_identifier: "{{ instance_id }}" <<: *aws_connection_info register: result - assert: that: - "result.snapshots | length == 1" - "result.snapshots.0.engine == 'mariadb'" always: - name: Use AWS CLI to delete the snapshot command: "aws rds delete-db-snapshot --db-snapshot-identifier '{{ instance_id }}'" environment: AWS_ACCESS_KEY_ID: "{{ aws_access_key }}" AWS_SECRET_ACCESS_KEY: "{{ aws_secret_key }}" AWS_SESSION_TOKEN: "{{ security_token }}" AWS_DEFAULT_REGION: "{{ aws_region }}" # TODO: Uncomment once rds_snapshot module exists #- name: Remove the snapshot # rds_snapshot: # db_snapshot_identifier: "{{ instance_id }}" # state: absent # <<: *aws_connection_info # ignore_errors: yes - name: Remove the DB instance rds_instance: id: "{{ instance_id }}" state: absent skip_final_snapshot: True <<: *aws_connection_info ignore_errors: yes