From 4bd347afb380f00abf5ca0117e9df611a93d4827 Mon Sep 17 00:00:00 2001 From: Arthur BOUDREAULT <boudreaultarthur@ik.me> Date: Wed, 17 Nov 2021 17:34:30 +0100 Subject: [PATCH] feat: cron tasks for apps backup --- defaults/main.yml | 8 ++++++++ tasks/backup.yml | 32 ++++++++++++++++++++++++++++++++ tasks/main.yml | 4 ++++ 3 files changed, 44 insertions(+) create mode 100644 tasks/backup.yml diff --git a/defaults/main.yml b/defaults/main.yml index 725285b..c6479cb 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -63,3 +63,11 @@ ynh_apps: null # owner: ttrss # Only provide if different from app name # group: ttrss # Only provide if different from www-data +# Variables for backup +# ynh_backup: +# directory: "/data/backup" +# scheduled: "true" +# scheduled_hour: 3 +# scheduled_minute: "*" +# scheduled_weekday: "*" +# scheduled_month: "*" diff --git a/tasks/backup.yml b/tasks/backup.yml new file mode 100644 index 0000000..a199110 --- /dev/null +++ b/tasks/backup.yml @@ -0,0 +1,32 @@ +--- +#-----------------------------------------------------------------------------# +# ansible-yunohost allows to deploy Yunohost using Ansible # +# Copyright 2021-2021 Lydra https://www.lydra.fr/ # +# # +# this program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# this program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see <http://www.gnu.org/licenses/>. # +# # +#-----------------------------------------------------------------------------# + +- name: Create cron tasks under /etc/cron.d to perform auto-backup of apps + ansible.builtin.cron: + name: "auto-backup {{ item.label }} to {{ ynh_backup.directory }}/{{ item.link }}" + month: "{{ ynh_backup.scheduled_month | default('*') }}" + weekday: "{{ ynh_backup.scheduled_weekday | default('*') }}" + hour: "{{ ynh_backup.scheduled_hour | default('*') }}" + minute: "{{ ynh_backup.scheduled_minute | default('*') }}" + user: root + job: "yunohost backup create --apps {{ item.link }} + -o {{ ynh_backup.directory }}/{{ item.link }}" + cron_file: ynh_backup_apps + loop: "{{ ynh_apps }}" diff --git a/tasks/main.yml b/tasks/main.yml index 0480221..97ff37c 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -72,3 +72,7 @@ - name: Install Yunohost apps ansible.builtin.include_tasks: apps.yml when: ynh_apps + +- name: Enable Yunohost backup + ansible.builtin.include_tasks: backup.yml + when: ynh_backup.scheduled == 'true' -- GitLab