Facebook
From rchaud, 1 Week ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 91
  1.   - set_fact:
  2.       s3_bucket_name: "{{ lookup('env','S3_BUCKET_NAME') }}"
  3.       backup_file: "awx_backup_{{ lookup('pipe','date +%Y-%m-%d_%H-%M-%S') }}.sql.gz"
  4.       backup_tmp_folder: "{{ lookup('env','BACKUP_TMP_FOLDER')|default('/home/awx/', true) }}"
  5.       db_host: "{{ lookup('env','DB_HOST') }}"
  6.       db_port: "{{ lookup('env','DB_PORT')|default('5432', true) }}"
  7.       db_name: "{{ lookup('env','DB_NAME') }}"
  8.       db_user: "{{ lookup('env','DB_USER') }}"
  9.       db_pass: "{{ lookup('env','DB_PASS') }}"
  10.  
  11.     tags:
  12.       - backup
  13.       - restore
  14.  
  15.   - name: Assert required variables
  16.     assert:
  17.       that:
  18.         - s3_bucket_name|length > 0
  19.         - backup_tmp_folder|length > 0
  20.         - db_host|length > 0
  21.         - db_port|length > 0
  22.         - db_name|length > 0
  23.         - db_user|length > 0
  24.         - db_pass|length > 0
  25.     tags:
  26.       - backup
  27.       - restore
  28.  
  29.   - name: Backup Tasks
  30.     block:
  31.       - debug:
  32.           msg: "{{ s3_bucket_name }} - {{ backup_file }}"
  33.  
  34.       - name: Dump {{ db_name }}
  35.         postgresql_db:
  36.           login_host: "{{ db_host }}"
  37.           login_user: "{{ db_user }}"
  38.           login_password: "{{ db_pass }}"
  39.           name: "{{ db_name }}"
  40.           state: dump
  41.           target: "{{ backup_tmp_folder }}/{{ backup_file }}"
  42.  
  43.       - name: Upload {{ backup_file }} to S3 - {{ s3_bucket_name }}
  44.         aws_s3:
  45.           bucket: "{{ s3_bucket_name }}"
  46.           object: /{{backup_file}}
  47.           src: "{{ backup_tmp_folder }}/{{backup_file}}"
  48.           mode: put
  49.  
  50.     tags: backup