- set_fact: s3_bucket_name: "{{ lookup('env','S3_BUCKET_NAME') }}" backup_file: "awx_backup_{{ lookup('pipe','date +%Y-%m-%d_%H-%M-%S') }}.sql.gz" backup_tmp_folder: "{{ lookup('env','BACKUP_TMP_FOLDER')|default('/home/awx/', true) }}" db_host: "{{ lookup('env','DB_HOST') }}" db_port: "{{ lookup('env','DB_PORT')|default('5432', true) }}" db_name: "{{ lookup('env','DB_NAME') }}" db_user: "{{ lookup('env','DB_USER') }}" db_pass: "{{ lookup('env','DB_PASS') }}" tags: - backup - restore - name: Assert required variables assert: that: - s3_bucket_name|length > 0 - backup_tmp_folder|length > 0 - db_host|length > 0 - db_port|length > 0 - db_name|length > 0 - db_user|length > 0 - db_pass|length > 0 tags: - backup - restore - name: Backup Tasks block: - debug: msg: "{{ s3_bucket_name }} - {{ backup_file }}" - name: Dump {{ db_name }} postgresql_db: login_host: "{{ db_host }}" login_user: "{{ db_user }}" login_password: "{{ db_pass }}" name: "{{ db_name }}" state: dump target: "{{ backup_tmp_folder }}/{{ backup_file }}" - name: Upload {{ backup_file }} to S3 - {{ s3_bucket_name }} aws_s3: bucket: "{{ s3_bucket_name }}" object: /{{backup_file}} src: "{{ backup_tmp_folder }}/{{backup_file}}" mode: put tags: backup