modify backup on upgrade (#81)

* create backup direcotry

create a backup folder and move the gitea backup to backup.yml

* make the backup on update optional

Documentation and introduction of the variable `gitea_backup_on_upgrade: false`

* change become_method to sudo

change become_method to sudo as suggested by @wzzrd. removed become_flags.

* Full path to gitea binary in backup task. thanks to @wzzrd
This commit is contained in:
L3D 2021-03-21 17:10:42 +01:00 committed by GitHub
parent 8b71e3f137
commit 71ea49b7ac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 43 additions and 23 deletions

View file

@ -162,6 +162,10 @@ As this will only deploy config files, fail2ban already has to be installed or o
* `gitea_repo_exclude_vendored`: Exclude vendored files from the index. Default: `true` * `gitea_repo_exclude_vendored`: Exclude vendored files from the index. Default: `true`
* `gitea_repo_indexer_max_file_size`: Maximum size of files to be indexed (in bytes). Default: `1048576` (1 MB) * `gitea_repo_indexer_max_file_size`: Maximum size of files to be indexed (in bytes). Default: `1048576` (1 MB)
### backup on upgrade
* `gitea_backup_on_upgrade`: Optionally a backup can be created with every update of gitea. Default: `false`
* `gitea_backup_location`: Where to store the gitea backup if one is created with this role. Default: `{{ gitea_home }}/backups/`
## Contributing ## Contributing
Don't hesitate to create a pull request, and when in doubt you can reach me on Don't hesitate to create a pull request, and when in doubt you can reach me on
Twitter [@thomas_maurice](https://twitter.com/thomas_maurice). Twitter [@thomas_maurice](https://twitter.com/thomas_maurice).

View file

@ -88,3 +88,6 @@ gitea_repo_indexer_max_file_size: 1048576
gitea_log_level: Info gitea_log_level: Info
gitea_extra_config: "" gitea_extra_config: ""
gitea_backup_on_upgrade: false
gitea_backup_location: "{{ gitea_home }}/backups/"

30
tasks/backup.yml Normal file
View file

@ -0,0 +1,30 @@
---
- name: Get service facts
service_facts:
- block:
- name: Stopping gitea before upgrade
service:
name: gitea
state: stopped
- name: "Create backup directory"
file:
path: "{{ item }}"
state: directory
owner: "{{ gitea_user }}"
group: "{{ gitea_group }}"
mode: 'u=rwx,g=rx,o='
with_items:
- "{{ gitea_backup_location }}"
- name: Backing up gitea before upgrade
command:
cmd: "/usr/local/bin/gitea dump -c /etc/gitea/gitea.ini"
chdir: "{{ gitea_backup_location }}"
become: true
become_user: "{{ gitea_user }}"
when:
- ansible_facts.services["gitea.service"] is defined
- ansible_facts.services["gitea.service"].state == "running"
- gitea_active_version.stdout != gitea_version

View file

@ -18,28 +18,6 @@
retries: 5 retries: 5
delay: 2 delay: 2
- name: Get service facts
service_facts:
- block:
- name: Stopping gitea before upgrade
service:
name: gitea
state: stopped
- name: Backing up gitea before upgrade
command:
cmd: "gitea dump -c /etc/gitea/gitea.ini"
chdir: /var/backups/
become: true
become_method: su
become_user: "{{ gitea_user }}"
become_flags: "-s /bin/sh"
when:
- ansible_facts.services["gitea.service"] is defined
- ansible_facts.services["gitea.service"].state == "running"
- gitea_active_version.stdout != gitea_version
- block: - block:
- name: Download gitea archive - name: Download gitea archive
get_url: get_url:

View file

@ -17,7 +17,12 @@
failed_when: false failed_when: false
when: gitea_version_check|bool when: gitea_version_check|bool
- include: install.yml - name: backup gitea before update
include_tasks: backup.yml
when: gitea_backup_on_upgrade|bool
- name: install or update gitea
include_tasks: install.yml
- include: create_user.yml - include: create_user.yml