Files
Ansible/roles/nextcloud/tasks/configure.yml

165 lines
4.9 KiB
YAML

---
- 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"