initial role commit
This commit is contained in:
87
tasks/restore.yaml
Normal file
87
tasks/restore.yaml
Normal file
@@ -0,0 +1,87 @@
|
||||
---
|
||||
- name: Select backup file on localhost
|
||||
delegate_to: localhost
|
||||
become: no
|
||||
block:
|
||||
|
||||
- name: Find all backup files in the directory
|
||||
find:
|
||||
paths: "{{ gitea_local_backup_dir }}"
|
||||
patterns: "gitea_backup_*.tar.gz"
|
||||
file_type: file
|
||||
register: backup_files
|
||||
|
||||
- name: Print files
|
||||
debug:
|
||||
msg: "files found {{ backup_files }}"
|
||||
|
||||
- name: Set gitea_backup_file if not defined or empty
|
||||
when: gitea_backup_file is not defined or gitea_backup_file == ""
|
||||
block:
|
||||
- name: Sort backup files by timestamp in filename and select newest
|
||||
set_fact:
|
||||
gitea_backup_file: "{{ backup_files.files | sort(attribute='path') | last | default({}) | json_query('path') }}"
|
||||
when: backup_files.files | length > 0
|
||||
|
||||
- name: Fail if no backup files found
|
||||
fail:
|
||||
msg: "No backup files found in {{ gitea_local_backup_dir }}"
|
||||
when: backup_files.files | length == 0
|
||||
|
||||
- name: Display selected backup file
|
||||
debug:
|
||||
msg: "Using backup file: {{ gitea_backup_file }}"
|
||||
|
||||
- name: Verify backup file exists
|
||||
stat:
|
||||
path: "{{ gitea_backup_file }}"
|
||||
register: final_backup_check
|
||||
|
||||
- name: Fail if backup file doesn't exist
|
||||
fail:
|
||||
msg: "Backup file does not exist: {{ gitea_backup_file }}"
|
||||
when: not final_backup_check.stat.exists
|
||||
|
||||
- name: Stop Gitea service and runners
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/gitea
|
||||
state: stopped
|
||||
|
||||
- name: Remove existing data directory
|
||||
file:
|
||||
path: "{{ gitea_home_path }}/data"
|
||||
state: absent
|
||||
|
||||
- name: Remove existing runner directories
|
||||
file:
|
||||
path: "{{ gitea_home_path }}/{{ item.data_mount }}"
|
||||
state: absent
|
||||
loop: "{{ gitea_runners }}"
|
||||
|
||||
- name: Copy backup file to remote host
|
||||
copy:
|
||||
src: "{{ gitea_backup_file }}"
|
||||
dest: "{{ gitea_home_path }}/{{ gitea_backup_file | basename }}"
|
||||
mode: preserve
|
||||
register: copy_result
|
||||
|
||||
- name:
|
||||
|
||||
- name: Extract backup archive on remote host
|
||||
unarchive:
|
||||
src: "{{ gitea_home_path }}/{{ gitea_backup_file | basename }}"
|
||||
dest: "{{ gitea_home_path }}"
|
||||
remote_src: yes
|
||||
register: extract_result
|
||||
|
||||
- name: Fix ownership of extracted files
|
||||
file:
|
||||
path: "{{ gitea_home_path }}"
|
||||
owner: admin
|
||||
group: admin
|
||||
recurse: yes
|
||||
|
||||
- name: Delete backup archive from remote host
|
||||
file:
|
||||
path: "{{ gitea_home_path }}/{{ gitea_backup_file | basename }}"
|
||||
state: absent
|
||||
Reference in New Issue
Block a user