- hosts: all gather_facts: no tasks: - name: display time ansible.builtin.shell: echo {{ '%Y%m%d' | strftime }} register: today_date - name: Set variables current date set_fact: current_date: "{{ today_date.stdout}}" - name: Set variables Db name with the date set_fact: DbNameWithDate: "{{DBname+current_date}}" - name: Set variables ARN set_fact: Arn_generated: "{{'arn:aws:s3:::'+S3Bucket+'/'+DBInstancename+'/'+current_date+'/'+DbNameWithDate+additional_comment+'.bak'}}" - name: perform the query community.general.mssql_script: login_user: "{{ database_admin_user }}" login_password: "{{ database_admin_password }}" login_host: "{{ database_host }}" script: | USE [MASTER] DECLARE @arn varchar(MAX) = '{{Arn_generated}}' exec msdb.dbo.rds_backup_database @source_db_name='{{DBname}}', @s3_arn_to_backup_to=@arn ,@overwrite_s3_backup_file=1; register: db_output - name: Set task ID set_fact: Task_ID: "{{db_output.query_results[0][0][0][0]}}" #testing #Task_ID: "9124" - name: Display task ID debug: var=Task_ID - name: Check the status of the backup community.general.mssql_script: login_user: "{{ database_admin_user }}" login_password: "{{ database_admin_password }}" login_host: "{{ database_host }}" script: | USE [MASTER] exec msdb.dbo.rds_task_status @task_id='{{Task_ID}}' register: db_backup_output until: "'SUCCESS' in db_backup_output.query_results[0][0][0][5] or 'ERROR' in db_backup_output.query_results[0][0][0][5]" retries: 10 delay: 60 failed_when: "'ERROR' in db_backup_output.query_results[0][0][0][5]" - name: Display Status of the task debug: var=db_backup_output.query_results[0][0][0][5]