--- - name: Configure .user.ini lineinfile: path: "{{ nextcloud_dir }}/.user.ini" line: '{{ item.type }} {{ item.option }} {{ item.value }}' owner: "{{ webserver_user }}" group: "{{ webserver_group }}" mode: "0644" create: true loop: "{{ nextcloud_user_ini }}" - name: Install apps become: true become_user: "{{ webserver_user }}" command: cmd: php occ app:install {{ item }} args: chdir: "{{ nextcloud_dir }}" creates: "{{ nextcloud_dir }}/apps/{{ item }}" loop: "{{ nextcloud_occ_install_app }}" - name: Update apps become: true become_user: "{{ webserver_user }}" command: cmd: php occ app:update --all args: chdir: "{{ nextcloud_dir }}" register: nextcloud_apps_update changed_when: "' updated' in nextcloud_apps_update.stdout" - name: Set configs via occ become: true become_user: "{{ webserver_user }}" command: cmd: php occ config:app:set {{ item }} args: chdir: "{{ nextcloud_dir }}" register: nextcloud_occ_config_app_output changed_when: nextcloud_occ_config_app_output.rc != 0 loop: "{{ nextcloud_occ_config_app }}" when: not nextcloud_dir_stat.stat.exists - name: Get latest nextcloud_exporter version github_release: user: xperimental repo: nextcloud-exporter action: latest_release token: "{{ vault_github_token }}" delegate_to: localhost run_once: true register: nextcloud_exporter_version - name: "{{ nextcloud_exporter_version }}" set_fact: nextcloud_exporter_version: "{{ nextcloud_exporter_version | replace('v', '', 1) | trim }}" run_once: true - name: Set architecture alias set_fact: architecture_alias: "amd64" # noqa: var-naming[no-role-prefix] when: ansible_architecture == "x86_64" - name: Set architecture alias set_fact: architecture_alias: "arm64" # noqa: var-naming[no-role-prefix] when: ansible_architecture == "aarch64" - name: "Download nextcloud_exporter from GitHub" get_url: url: "https://github.com/xperimental/nextcloud-exporter/releases/download/\ v{{ nextcloud_exporter_version.tag }}/nextcloud-exporter_{{ nextcloud_exporter_version.tag }}\ _{{ architecture_alias }}.bz2" dest: "/var/tmp/nextcloud-exporter.bz2" mode: "0644" register: nextcloud_exporter_download_archive until: nextcloud_exporter_download_archive is succeeded retries: 3 delay: 5 - name: Decompress nextcloud_exporter command: cmd: "bzip2 -dkf nextcloud-exporter.bz2" args: chdir: /var/tmp/ register: nextcloud_exporter_decompress_archive changed_when: nextcloud_exporter_decompress_archive.rc != 0 when: nextcloud_exporter_download_archive.changed # noqa: no-handler - name: Copy nextcloud_exporter copy: remote_src: true src: "/var/tmp/nextcloud-exporter" dest: "{{ nextcloud_exporter_install_dir }}/nextcloud_exporter" owner: "{{ nextcloud_exporter_system_user }}" group: "{{ nextcloud_exporter_system_group }}" mode: "0755" notify: Restart nextcloud_exporter - name: Get latest nextcloud_notify_push version github_release: user: nextcloud repo: notify_push action: latest_release token: "{{ vault_github_token }}" delegate_to: localhost run_once: true register: nextcloud_notify_push_version - name: "{{ nextcloud_notify_push_version }}" set_fact: nextcloud_notify_push_version: "{{ nextcloud_notify_push_version | replace('v', '', 1) | trim }}" run_once: true - name: "Download nextcloud_notify_push from GitHub" get_url: url: "https://github.com/nextcloud/notify_push/releases/download/v{{ nextcloud_notify_push_version.tag }}\ /notify_push-{{ ansible_architecture }}-unknown-linux-musl" dest: "/var/tmp/nextcloud_notify_push" mode: "0700" register: nextcloud_notify_push_download_file until: nextcloud_notify_push_download_file is succeeded retries: 3 delay: 5 - name: Copy nextcloud_notify_push copy: remote_src: true src: "/var/tmp/nextcloud_notify_push" dest: "{{ nextcloud_notify_push_install_dir }}/nextcloud_notify_push" owner: "{{ webserver_user }}" group: "{{ webserver_group }}" mode: "0700" notify: Restart nextcloud_notify_push - name: Copy nextcloud_nightlycron template: src: nextcloud_nightlycron.sh.j2 dest: "{{ nextcloud_background_script_dir }}/nextcloud_nightlycron.sh" owner: "{{ webserver_user }}" group: "{{ webserver_group }}" mode: "0700" - name: Copy Nextcloud systemd service file template: src: "{{ item }}.j2" dest: "/etc/systemd/system/{{ item }}" owner: root group: root mode: "0644" loop: - nextcloudcron.service - nextcloudcron.timer - nextcloud_notify_push.service - nextcloud_exporter.service - nextcloud_nightlycron.service - nextcloud_nightlycron.timer notify: - Restart {{ item | regex_replace('\..*', '') }} - name: Copy Nextcloud logrotate file template: src: logrotate.nextcloud.j2 dest: /etc/logrotate.d/nextcloud mode: "0644"