diff --git a/defaults/main.yml b/defaults/main.yml index 3440a8f..6e56e42 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -172,3 +172,7 @@ nextcloud_notify_push_max_connection_time: False nextcloud_notify_push_port: 7867 # Uncomment to expose Nextcloud notify_push metrics # nextcloud_notify_push_metrics_port: 7868 + +# Cleanup old nextcloud version folders +nextcloud_cleanup_versions: True +nextcloud_cleanup_versions_keep: 4 diff --git a/tasks/main.yml b/tasks/main.yml index 2a1ec85..2b0110e 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -85,6 +85,13 @@ - role:nextcloud:install - role:nextcloud:upgrade +- name: Cleanup old Nextcloud version folders + ansible.builtin.import_tasks: nextcloud/cleanup-versions.yml + when: nextcloud_cleanup_versions + tags: + - role:nextcloud:upgrade + - role:nextcloud:cleanup + - name: Setup Nextcloud push notification daemon ansible.builtin.include_tasks: nextcloud/notify-push.yml when: nextcloud_notify_push diff --git a/tasks/nextcloud/cleanup-versions.yml b/tasks/nextcloud/cleanup-versions.yml new file mode 100644 index 0000000..3a64b54 --- /dev/null +++ b/tasks/nextcloud/cleanup-versions.yml @@ -0,0 +1,21 @@ +--- + +- name: Get link destination of nextcloud_symlink + ansible.builtin.stat: + path: "{{ nextcloud_symlink }}" + register: __nextcloud_symlink + +- name: Find old version directories in nextcloud_workdir + ansible.builtin.find: + paths: "{{ nextcloud_workdir }}" + file_type: directory + excludes: "{{ __nextcloud_symlink.stat.lnk_target }},nextcloud-{{ nextcloud_version }}" + patterns: '^nextcloud-[0-9]+\.[0-9]+\.[0-9]+$' + use_regex: True + register: __nextcloud_version_folders + +- name: "Remove old version directories except last {{ nextcloud_cleanup_versions_keep }}" + ansible.builtin.file: + path: "{{ item }}" + state: absent + loop: "{{ (__nextcloud_version_folders | json_query('files[].path') | sort)[:-nextcloud_cleanup_versions_keep] }}" diff --git a/tasks/nextcloud/configure.yml b/tasks/nextcloud/configure.yml index f7dd83f..0bc932d 100644 --- a/tasks/nextcloud/configure.yml +++ b/tasks/nextcloud/configure.yml @@ -36,7 +36,7 @@ - "{{ nextcloud_custom_apps }}" - name: "Nextcloud configure: enable custom apps" - become: true + become: True become_user: "{{ nextcloud_http_user }}" nextcloud_app: name: "{{ item }}"