|
|
|
@ -1,30 +1,23 @@
|
|
|
|
### Example:
|
|
|
|
### Example:
|
|
|
|
# ansible-playbook -v ansible/volume-restore.yml -e "container_name=linkding volume_suffix=data"
|
|
|
|
# ansible-playbook -v ansible/volume-restore.yml -e "container_name=mariadb"
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
---
|
|
|
|
- hosts: servers
|
|
|
|
- hosts: servers
|
|
|
|
tasks:
|
|
|
|
tasks:
|
|
|
|
- name: Find backup
|
|
|
|
- name: Find volumes
|
|
|
|
find:
|
|
|
|
ansible.builtin.shell: docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /mnt/hdds/backups/:/mnt/hdds/backups/ ghcr.io/chatton/docker-volume-backup:pr-11 list-backups --host-path /mnt/hdds/backups/ --volume-name-filter {{container_name}}
|
|
|
|
paths: /mnt/hdds/backups/
|
|
|
|
register: out
|
|
|
|
patterns: "{{container_name}}"
|
|
|
|
|
|
|
|
use_regex: true
|
|
|
|
|
|
|
|
recurse: true
|
|
|
|
|
|
|
|
register: files_matched
|
|
|
|
|
|
|
|
- name: Stop the container
|
|
|
|
- name: Stop the container
|
|
|
|
docker_container:
|
|
|
|
docker_container:
|
|
|
|
name: "{{container_name}}"
|
|
|
|
name: "{{container_name}}"
|
|
|
|
state: stopped
|
|
|
|
state: stopped
|
|
|
|
- name: Restore Volume
|
|
|
|
- name: Restore Volume
|
|
|
|
environment:
|
|
|
|
ansible.builtin.command: docker run --rm
|
|
|
|
ARCHIVE_NAME: "{{ files_matched.files[0].path }}"
|
|
|
|
-v /var/run/docker.sock:/var/run/docker.sock
|
|
|
|
VOLUME_TO_CREATE: "{{container_name}}_{{volume_suffix}}"
|
|
|
|
ghcr.io/chatton/docker-volume-backup:master
|
|
|
|
ansible.builtin.command: docker run --rm
|
|
|
|
restore-volume
|
|
|
|
-v /var/run/docker.sock:/var/run/docker.sock
|
|
|
|
--volume {{item.volumeName}}
|
|
|
|
ghcr.io/chatton/docker-volume-backup:master
|
|
|
|
--archive {{item.absoluteFilePath}}
|
|
|
|
restore-volume
|
|
|
|
with_items: "{{ out.stdout }}"
|
|
|
|
--volume ${VOLUME_TO_CREATE}
|
|
|
|
|
|
|
|
--archive ${ARCHIVE_NAME}
|
|
|
|
|
|
|
|
- name: Start the container
|
|
|
|
- name: Start the container
|
|
|
|
docker_container:
|
|
|
|
docker_container:
|
|
|
|
name: "{{container_name}}"
|
|
|
|
name: "{{container_name}}"
|
|
|
|
|