Backport fixes from version in production
Per file detail:
backup.yml
- Added role defaults loading with proper precedence (inventory > vars > defaults)
- Fixed pg_dump permissions: now dumps to /tmp first, then moves to backup directory
update.yml
- Added role defaults loading with proper precedence
- Fixed docker exec commands to use --user {{ forgejo_user }}
- Added monitoring compose file detection and handling
restore.yml
- Added role defaults loading with proper precedence
- Added monitoring compose file detection and handling
- Fixed docker exec for doctor command to use --user {{ forgejo_user }}
Makefile
- Updated .PHONY with new targets
- Replaced auto-generated help with structured categorized help
- Added backup-cron and backup-cron-s3 targets for non-interactive backups
- Added cron job example in help output
This commit is contained in:
parent
dff39e3d36
commit
c09bf58ea7
4 changed files with 143 additions and 20 deletions
|
|
@ -18,6 +18,18 @@
|
|||
force_restore: false
|
||||
|
||||
pre_tasks:
|
||||
- name: Load role defaults as fallback
|
||||
ansible.builtin.include_vars:
|
||||
file: ../roles/forgejo/defaults/main.yml
|
||||
name: role_defaults
|
||||
|
||||
- name: Apply all role defaults for undefined variables
|
||||
ansible.builtin.set_fact:
|
||||
"{{ item.key }}": "{{ vars[item.key] | default(item.value) }}"
|
||||
loop: "{{ role_defaults | dict2items }}"
|
||||
loop_control:
|
||||
label: "{{ item.key }}"
|
||||
|
||||
- name: Validate backup timestamp
|
||||
ansible.builtin.fail:
|
||||
msg: "Please provide backup_timestamp via --extra-vars 'backup_timestamp=20240115T120000'"
|
||||
|
|
@ -100,11 +112,17 @@
|
|||
register: db_backup
|
||||
failed_when: not db_backup.stat.exists
|
||||
|
||||
- name: Check if monitoring compose file exists
|
||||
ansible.builtin.stat:
|
||||
path: "{{ forgejo_base_path }}/docker-compose.monitoring.yml"
|
||||
register: monitoring_compose
|
||||
|
||||
- name: Stop Forgejo service
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ forgejo_base_path }}"
|
||||
files: "{{ ['docker-compose.yml', 'docker-compose.monitoring.yml'] if monitoring_compose.stat.exists else ['docker-compose.yml'] }}"
|
||||
state: stopped
|
||||
|
||||
|
||||
- name: Restore PostgreSQL database
|
||||
when: forgejo_db_type == 'postgres'
|
||||
block:
|
||||
|
|
@ -180,8 +198,9 @@
|
|||
- name: Start Forgejo service
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ forgejo_base_path }}"
|
||||
files: "{{ ['docker-compose.yml', 'docker-compose.monitoring.yml'] if monitoring_compose.stat.exists else ['docker-compose.yml'] }}"
|
||||
state: present
|
||||
|
||||
|
||||
- name: Wait for Forgejo to be ready
|
||||
ansible.builtin.uri:
|
||||
url: "http://localhost:{{ forgejo_http_port }}"
|
||||
|
|
@ -193,7 +212,7 @@
|
|||
|
||||
- name: Run integrity checks
|
||||
ansible.builtin.command:
|
||||
cmd: docker exec forgejo forgejo doctor check --all
|
||||
cmd: docker exec --user {{ forgejo_user }} forgejo forgejo doctor check --all
|
||||
register: integrity_check
|
||||
failed_when: false
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue