--- # initial checks - name: Check that poa-netstats is running shell: "systemctl is-active poa-netstats" register: systemctl_poa_netstats failed_when: systemctl_poa_netstats.rc not in [0,3] # neither active nor inactive - name: Check that poa-parity is running shell: "systemctl is-active poa-parity" register: systemctl_poa_parity failed_when: systemctl_poa_parity.rc not in [0,3] # neither active nor inactive # stop services - name: Shutdown poa-netstats service service: name=poa-netstats state=stopped when: systemctl_poa_netstats.rc == 0 - name: Shutdown poa-parity service service: name=poa-parity state=stopped when: systemctl_poa_parity.rc == 0 # make backups - name: Create backup directory file: path=/data state=directory - name: Create parity_data archive command: "tar cz --exclude=parity_data/keys/* -f /data/parity_data.tar.gz parity_data" args: chdir: "/home/{{ poa_role }}" #- name: Create parity_data archive # archive: # format: gz # path: /home/{{ poa_role }}/parity_data # dest: "/data/parity_data.tar.gz" # when: backup_parity_data == true - name: Export parity blocks shell: "cd /home/{{ poa_role }}; ./parity --config node.toml export blocks blocks.rlp" when: backup_parity_blocks == true - name: Create parity blocks archive archive: format: gz path: /home/{{ poa_role }}/blocks.rlp dest: "/data/parity_blocks.rlp.gz" when: backup_parity_blocks == true # start services - name: Launch poa-parity service service: name=poa-parity state=started when: systemctl_poa_parity.rc == 0 - name: Launch poa-netstats service service: name=poa-netstats state=started when: systemctl_poa_netstats.rc == 0 # upload backups to s3 - name: Upload parity_data to s3 s3: aws_access_key: "{{ access_key }}" aws_secret_key: "{{ secret_key }}" bucket: "{{ s3_bucket }}" object: "/{{ date }}-{{ poa_role }}-{{ node_name }}-parity_data.tar.gz" src: "/data/parity_data.tar.gz" mode: put when: backup_parity_data == true - name: Upload parity blocks to s3 s3: aws_access_key: "{{ access_key }}" aws_secret_key: "{{ secret_key }}" bucket: "{{ s3_bucket }}" object: "/{{ date }}-{{ poa_role }}-{{ node_name }}-parity_blocks.rlp.gz" src: "/data/parity_blocks.rlp.gz" mode: put when: backup_parity_blocks == true # cleanup - name: Clean local backup storage file: state: absent path: "/data/" - name: Clean rlp file file: state: absent path: "/home/{{ poa_role }}/blocks.rlp"