ansible
This commit is contained in:
parent
7974e36c1b
commit
b81f7e15b2
41 changed files with 1632 additions and 0 deletions
79
ansible/roles/forgejo_backup/tasks/main.yaml
Normal file
79
ansible/roles/forgejo_backup/tasks/main.yaml
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
---
|
||||
- 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue