38 lines
1.3 KiB
YAML
38 lines
1.3 KiB
YAML
---
|
|
- name: Checking if OneLab is running
|
|
shell: docker stack ls | grep 'onelab' | grep -v 'onelab_proxy' | wc -l
|
|
become: true
|
|
register: backup_stack_count
|
|
|
|
# Start DB if OneLab is not running
|
|
- include_tasks: "{{ onelab_path }}/installation/latest/app/playbooks/tasks/start-db-only.yml"
|
|
when: backup_stack_count.stdout == "0"
|
|
|
|
- name: Creating backup directory
|
|
file:
|
|
path: "{{ onelab_path }}/backups/{{ ansible_date_time.iso8601_basic_short }}_1.27.0"
|
|
state: directory
|
|
register: backup_path
|
|
|
|
- name: Backing up files
|
|
shell:
|
|
tar --exclude='temp' -czvf {{ backup_path.path }}/onelab.tar.gz -C {{ onelab_path }} ./data ./installation ./nginx ./proxy ./rabbit ./ssl ./backup.sh ./configurations.yml ./docker-compose.yml ./reconfigure.sh ./start.sh ./stop.sh ./update.sh
|
|
become: yes
|
|
|
|
- name: Backing up database
|
|
shell:
|
|
docker exec -i $(docker ps --filter "name=onelab_db|onelab-db" -q) pg_dump -Upostgres -Fc > {{ backup_path.path }}/db.tar.gz
|
|
become: yes
|
|
|
|
- name: Creating restore script files
|
|
copy:
|
|
src: "{{ onelab_path }}/installation/latest/resources/restore/{{ item }}"
|
|
dest: "{{ backup_path.path }}"
|
|
with_items:
|
|
- 'restore.yml'
|
|
- 'restore.sh'
|
|
|
|
# Stop DB if OneLab was not running
|
|
- include_tasks: "{{ onelab_path }}/installation/latest/app/playbooks/tasks/stop-db-only.yml"
|
|
when: backup_stack_count.stdout == "0"
|