poa-devops/roles/backup-parity/tasks/main.yml

89 lines
2.5 KiB
YAML

---
# 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"