You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible-homelab/_ansible/homelab/playbooks/restore-all.yml

164 lines
4.5 KiB
YAML

###
# restore-all restores a manually specified list of volumes.
# This is intended for user when initially setting up a home lab environment
# and want to restore all applications from existing backups
#
# Restores will be skipped if there is no archive in the backup directory.
#
# If a container exists, it will be stopped, restored and started
# If a container does not exist, the volume will be still be created.
###
############################################
# TODO: add a command which lists all the stack, and each stack can list all the containers. From there we can iterate
# through each container in the stack calling restore-volume-tasks.yml and then call create-stack-tasks.yml
############################################
---
- name: Redeploy Portainer and All Volumes
hosts: servers
vars_files:
- ../variables.yml
- ~/.homelab/variables.yml
tasks:
- name: Create next cloud a network
docker_network:
name: nextcloud_net
# The docker volume backup image utilizes these images
- name: Pull ubuntu
docker_image:
name: ubuntu
source: pull
- name: Pull busybox
docker_image:
name: busybox
source: pull
- name: Pull docker-volume-backup
docker_image:
name: "{{docker_volume_backup_image}}"
source: pull
- name: Pull start-portainer-stack
docker_image:
name: ghcr.io/chatton/start-portainer-stack:master
source: pull
- name: Restore Portainer
import_tasks: ../tasks/restore-volume-tasks.yml
vars:
container_name: "portainer"
- name: "Restore {{item}}"
import_tasks: ../tasks/restore-volume-tasks.yml
vars:
container_name: "{{item}}"
with_items: {{stacks}}
- name: "Start {{item}} Stack"
import_tasks: ../tasks/create-stack-tasks.yml
vars:
stack_name: "{{item}}"
with_items: {{stacks}}
# - name: Restore Linkding
# import_tasks: ../tasks/restore-volume-tasks.yml
# vars:
# container_name: "linkding"
#
# - name: Start Linkding Stack
# import_tasks: ../tasks/create-stack-tasks.yml
# vars:
# stack_name: "linkding"
#
# - name: Restore Nginx Proxy Manager
# import_tasks: ../tasks/restore-volume-tasks.yml
# vars:
# container_name: "nginx-proxy-manager"
#
# - name: Start Nginx Proxy Manager
# import_tasks: ../tasks/create-stack-tasks.yml
# vars:
# stack_name: "nginx-proxy-manager"
#
# - name: Restore Vpn Stack
# import_tasks: ../tasks/restore-volume-tasks.yml
# vars:
# container_name: "vpn-stack"
#
# - name: Start Vpn Stack
# import_tasks: ../tasks/create-stack-tasks.yml
# vars:
# stack_name: "vpn-stack"
#
#
# - name: Restore MariaDB
# import_tasks: ../tasks/restore-volume-tasks.yml
# vars:
# container_name: "mariadb"
#
# - name: Start MariaDB
# import_tasks: ../tasks/create-stack-tasks.yml
# vars:
# stack_name: "mariadb"
#
# - name: Restore Nextcloud
# import_tasks: ../tasks/restore-volume-tasks.yml
# vars:
# container_name: "nextcloud"
#
# - name: Start Nextcloud
# import_tasks: ../tasks/create-stack-tasks.yml
# vars:
# stack_name: "nextcloud"
#
# - name: Restore Photoprism
# import_tasks: ../tasks/restore-volume-tasks.yml
# vars:
# container_name: "photoprism"
#
# - name: Start Photoprism
# import_tasks: ../tasks/create-stack-tasks.yml
# vars:
# stack_name: "photoprism"
#
# - name: Restore Plex
# import_tasks: ../tasks/restore-volume-tasks.yml
# vars:
# container_name: "plex"
#
# - name: Start Plex
# import_tasks: ../tasks/create-stack-tasks.yml
# vars:
# stack_name: "plex"
#
# - name: Restore Mealie
# import_tasks: ../tasks/restore-volume-tasks.yml
# vars:
# container_name: "mealie"
#
# - name: Start Mealie
# import_tasks: ../tasks/create-stack-tasks.yml
# vars:
# stack_name: "mealie"
#
# - name: Restore Overseerr
# import_tasks: ../tasks/restore-volume-tasks.yml
# vars:
# container_name: "overseerr"
#
# - name: Start Overseerr
# import_tasks: ../tasks/create-stack-tasks.yml
# vars:
# stack_name: "overseerr"
#
# - name: Restore Uptime Kuma
# import_tasks: ../tasks/restore-volume-tasks.yml
# vars:
# container_name: "uptime-kuma"
#
# - name: Start Uptime Kuma
# import_tasks: ../tasks/create-stack-tasks.yml
# vars:
# stack_name: "uptime-kuma"