79 lines
1.9 KiB
YAML
79 lines
1.9 KiB
YAML
---
|
|
- name: Create local backup directory
|
|
file:
|
|
path: "{{ backup_dest_dir }}"
|
|
state: directory
|
|
mode: '0755'
|
|
delegate_to: localhost
|
|
become: false
|
|
|
|
- name: Check if Forgejo service is running on old server
|
|
systemd:
|
|
name: forgejo
|
|
register: forgejo_service
|
|
|
|
- name: Stop Forgejo service temporarily for backup
|
|
systemd:
|
|
name: forgejo
|
|
state: stopped
|
|
when: forgejo_service.status.ActiveState == "active"
|
|
|
|
- name: Create Forgejo dump backup
|
|
command: >
|
|
/usr/bin/forgejo dump
|
|
-c /etc/forgejo/app.ini
|
|
-w /srv/gitea
|
|
--tempdir /tmp
|
|
args:
|
|
chdir: /srv/gitea
|
|
register: dump_output
|
|
|
|
- name: Get dump filename
|
|
find:
|
|
paths: /srv/gitea
|
|
patterns: "gitea-dump-*.zip"
|
|
register: dump_file
|
|
|
|
- name: Create additional backup archive
|
|
archive:
|
|
path:
|
|
- /srv/gitea/gitea.db
|
|
- /srv/gitea/data
|
|
- /var/lib/forgejo/.ssh
|
|
- /var/lib/forgejo-runner/.runner
|
|
dest: /tmp/forgejo-additional-{{ ansible_date_time.date }}.tar.gz
|
|
format: gz
|
|
ignore_errors: true
|
|
|
|
- name: Fetch dump file to local machine
|
|
fetch:
|
|
src: "{{ dump_file.files[0].path }}"
|
|
dest: "{{ backup_dest_dir }}/"
|
|
flat: true
|
|
when: dump_file.files | length > 0
|
|
|
|
- name: Fetch additional backup to local machine
|
|
fetch:
|
|
src: /tmp/forgejo-additional-{{ ansible_date_time.date }}.tar.gz
|
|
dest: "{{ backup_dest_dir }}/"
|
|
flat: true
|
|
ignore_errors: true
|
|
|
|
- name: Start Forgejo service
|
|
systemd:
|
|
name: forgejo
|
|
state: started
|
|
when: forgejo_service.status.ActiveState == "active"
|
|
|
|
- name: Display backup information
|
|
debug:
|
|
msg: |
|
|
Forgejo backup completed successfully!
|
|
|
|
Backup files saved to: {{ backup_dest_dir }}/
|
|
- Forgejo dump: {{ dump_file.files[0].path | basename }}
|
|
- Additional data: forgejo-additional-{{ ansible_date_time.date }}.tar.gz
|
|
|
|
Next steps:
|
|
1. Verify backup integrity
|
|
2. Run restore playbook: ansible-playbook playbooks/restore-forgejo.yaml
|