Compare commits

..

4 Commits

Author SHA1 Message Date
Oli
bccf9deff0 add new vfs-cache-min-free-space option 2023-09-17 21:21:04 +00:00
Oli
903584558e use occ absolute path 2023-09-17 21:20:55 +00:00
Oli
204378dc3a move token to env variable 2023-09-17 21:20:46 +00:00
Oli
b5f1c47c0f new nextcloud config management 2023-09-17 21:20:27 +00:00
6 changed files with 49 additions and 36 deletions

View File

@@ -4,9 +4,10 @@
lineinfile: lineinfile:
path: "{{ nextcloud_dir }}/.user.ini" path: "{{ nextcloud_dir }}/.user.ini"
line: '{{ item.type }} {{ item.option }} {{ item.value }}' line: '{{ item.type }} {{ item.option }} {{ item.value }}'
create: true
owner: "{{ webserver_user }}" owner: "{{ webserver_user }}"
group: "{{ webserver_group }}" group: "{{ webserver_group }}"
mode: "0644"
create: true
loop: "{{ nextcloud_user_ini }}" loop: "{{ nextcloud_user_ini }}"
- name: Install apps - name: Install apps
@@ -14,24 +15,21 @@
become_user: "{{ webserver_user }}" become_user: "{{ webserver_user }}"
command: command:
cmd: php occ app:install {{ item }} cmd: php occ app:install {{ item }}
args:
chdir: "{{ nextcloud_dir }}" chdir: "{{ nextcloud_dir }}"
creates: "{{ nextcloud_dir }}/apps/{{ item }}" creates: "{{ nextcloud_dir }}/apps/{{ item }}"
ignore_errors: true with_items: "{{ nextcloud_occ_install_app }}"
with_items: "{{ nextcloud_apps }}"
- name: Set configs via occ - name: Set configs via occ
become: true become: true
become_user: "{{ webserver_user }}" become_user: "{{ webserver_user }}"
command: command:
cmd: php occ config:app:set {{ item }} cmd: php occ config:app:set {{ item }}
args:
chdir: "{{ nextcloud_dir }}" chdir: "{{ nextcloud_dir }}"
loop: register: nextcloud_occ_config_app_output
- "preview jpeg_quality --value=60" changed_when: nextcloud_occ_config_app_output.rc != 0
- "previewgenerator squareSizes --value='256 1024'" loop: "{{ nextcloud_occ_config_app }}"
- "previewgenerator widthSizes --value=2048"
- "previewgenerator heightSizes --value=2048"
- "files_trashbin background_job_expire_trash --value=no"
- "files_versions background_job_expire_versions --value=no"
when: not nextcloud_dir_stat.stat.exists when: not nextcloud_dir_stat.stat.exists
- name: Get latest nextcloud_exporter version - name: Get latest nextcloud_exporter version
@@ -45,15 +43,16 @@
register: nextcloud_exporter_version register: nextcloud_exporter_version
- name: "{{ nextcloud_exporter_version }}" - name: "{{ nextcloud_exporter_version }}"
set_fact: set_fact:
nextcloud_exporter_version: "{{ nextcloud_exporter_version | replace ('v', '', 1) | trim }}" nextcloud_exporter_version: "{{ nextcloud_exporter_version | replace('v', '', 1) | trim }}"
run_once: true run_once: true
- name: Download nextcloud_exporter {{ nextcloud_exporter_version.tag }} from GitHub - name: "Download nextcloud_exporter from GitHub (v{{ nextcloud_exporter_version.tag }})"
get_url: get_url:
url: "https://github.com/xperimental/nextcloud-exporter/releases/download/\ url: "https://github.com/xperimental/nextcloud-exporter/releases/download/\
v{{ nextcloud_exporter_version.tag }}/nextcloud-exporter-{{ nextcloud_exporter_version.tag }}\ v{{ nextcloud_exporter_version.tag }}/nextcloud-exporter-{{ nextcloud_exporter_version.tag }}\
-{{ deb_architecture }}.bz2" -{{ deb_architecture }}.bz2"
dest: "/var/tmp/nextcloud-exporter.bz2" dest: "/var/tmp/nextcloud-exporter.bz2"
mode: "0644"
register: nextcloud_exporter_download_archive register: nextcloud_exporter_download_archive
until: nextcloud_exporter_download_archive is succeeded until: nextcloud_exporter_download_archive is succeeded
retries: 3 retries: 3
@@ -70,9 +69,9 @@
- name: Copy nextcloud_exporter - name: Copy nextcloud_exporter
copy: copy:
remote_src: true
src: "/var/tmp/nextcloud-exporter" src: "/var/tmp/nextcloud-exporter"
dest: "{{ nextcloud_exporter_install_dir }}/nextcloud_exporter" dest: "{{ nextcloud_exporter_install_dir }}/nextcloud_exporter"
remote_src: true
owner: "{{ nextcloud_exporter_system_user }}" owner: "{{ nextcloud_exporter_system_user }}"
group: "{{ nextcloud_exporter_system_group }}" group: "{{ nextcloud_exporter_system_group }}"
mode: "0755" mode: "0755"
@@ -89,34 +88,35 @@
register: nextcloud_notify_push_version register: nextcloud_notify_push_version
- name: "{{ nextcloud_notify_push_version }}" - name: "{{ nextcloud_notify_push_version }}"
set_fact: set_fact:
nextcloud_notify_push_version: "{{ nextcloud_notify_push_version | replace ('v', '', 1) | trim }}" nextcloud_notify_push_version: "{{ nextcloud_notify_push_version | replace('v', '', 1) | trim }}"
run_once: true run_once: true
- name: "set deb_architecture alias" - name: Set deb_architecture alias and filename
set_fact: set_fact:
deb_architecture_alias: "x86_64" # noqa: var-naming[no-role-prefix] notify_push_filename: "x86_64-unknown-linux-musl" # noqa: var-naming[no-role-prefix]
when: deb_architecture == "amd64" when: deb_architecture == "amd64"
- name: "set deb_architecture alias" - name: Set deb_architecture alias and filename
set_fact: set_fact:
deb_architecture_alias: "{{ deb_architecture }}" # noqa: var-naming[no-role-prefix] notify_push_filename: "armv7-unknown-linux-musleabihf" # noqa: var-naming[no-role-prefix]
when: deb_architecture != "amd64" when: deb_architecture == "arm64"
- name: Download nextcloud_notify_push {{ nextcloud_notify_push_version.tag }} from GitHub - name: "Download nextcloud_notify_push from GitHub (v{{ nextcloud_notify_push_version.tag }})"
get_url: get_url:
url: "https://github.com/nextcloud/notify_push/releases/download/v{{ nextcloud_notify_push_version.tag }}\ url: "https://github.com/nextcloud/notify_push/releases/download/v{{ nextcloud_notify_push_version.tag }}\
/notify_push-{{ deb_architecture_alias }}-unknown-linux-musl" /notify_push-{{ notify_push_filename }}"
dest: "/var/tmp/notify_push-{{ deb_architecture_alias }}-unknown-linux-musl" dest: "/var/tmp/notify_push"
register: nextcloud_notify_push_download_archive mode: "0700"
until: nextcloud_notify_push_download_archive is succeeded register: nextcloud_notify_push_download_file
until: nextcloud_notify_push_download_file is succeeded
retries: 3 retries: 3
delay: 5 delay: 5
- name: Copy nextcloud_notify_push - name: Copy nextcloud_notify_push
copy: copy:
src: "/var/tmp/notify_push-{{ deb_architecture_alias }}-unknown-linux-musl"
dest: "{{ nextcloud_notify_push_install_dir }}/nextcloud_notify_push-{{ deb_architecture_alias }}"
remote_src: true remote_src: true
src: "/var/tmp/notify_push"
dest: "{{ nextcloud_notify_push_install_dir }}/nextcloud_notify_push"
owner: "{{ webserver_user }}" owner: "{{ webserver_user }}"
group: "{{ webserver_group }}" group: "{{ webserver_group }}"
mode: "0700" mode: "0700"
@@ -145,8 +145,7 @@
- nextcloud_nightlycron.service - nextcloud_nightlycron.service
- nextcloud_nightlycron.timer - nextcloud_nightlycron.timer
notify: notify:
- Restart {{ item | regex_replace ('\..*', '') }} - Restart {{ item | regex_replace('\..*', '') }}
- Restart systemd_exporter
- name: Copy Nextcloud logrotate file - name: Copy Nextcloud logrotate file
template: template:

View File

@@ -5,10 +5,11 @@ Description=Nextcloud Exporter
After=network-online.target After=network-online.target
[Service] [Service]
Environment=NEXTCLOUD_AUTH_TOKEN={{ vault_nextcloud_exporter_token }}
User={{ nextcloud_exporter_system_user }} User={{ nextcloud_exporter_system_user }}
Group={{ nextcloud_exporter_system_group }} Group={{ nextcloud_exporter_system_group }}
Type=simple Type=simple
ExecStart={{ nextcloud_exporter_install_dir }}/nextcloud_exporter --server https://{{ nextcloud_domain_name }} --auth-token {{ vault_nextcloud_exporter_token }} ExecStart={{ nextcloud_exporter_install_dir }}/nextcloud_exporter --server https://{{ nextcloud_domain_name }}
Restart=always Restart=always
[Install] [Install]

View File

@@ -2,9 +2,7 @@
## Managed by Ansible ## ## Managed by Ansible ##
cd {{ nextcloud_dir }}
# Print start status message.
echo "delete expired versions" echo "delete expired versions"
/usr/bin/php occ versions:expire --quiet /usr/bin/php {{ nextcloud_dir }}/occ versions:expire --quiet
echo "permanently delete trashed files" echo "permanently delete trashed files"
/usr/bin/php occ trashbin:expire --quiet /usr/bin/php {{ nextcloud_dir }}/occ trashbin:expire --quiet

View File

@@ -10,7 +10,7 @@ Group={{ webserver_user }}
RuntimeDirectory=nextcloud RuntimeDirectory=nextcloud
RuntimeDirectoryMode=0750 RuntimeDirectoryMode=0750
PIDFile=/run/nextcloud/notify_push.pid PIDFile=/run/nextcloud/notify_push.pid
ExecStart = {{ nextcloud_notify_push_install_dir }}/nextcloud_notify_push-{{ deb_architecture_alias }} {{ nextcloud_dir }}/config/config.php ExecStart = {{ nextcloud_notify_push_install_dir }}/nextcloud_notify_push {{ nextcloud_dir }}/config/config.php
Restart=always Restart=always
[Install] [Install]

View File

@@ -26,7 +26,7 @@ ExecStart=/usr/bin/rclone mount DTSV_crypt:cloud_data {{ nextcloud_rclone_mount_
--drive-pacer-burst 1000 \ --drive-pacer-burst 1000 \
--vfs-cache-max-age 720h \ --vfs-cache-max-age 720h \
--vfs-cache-mode full \ --vfs-cache-mode full \
--vfs-cache-max-size 50G \ --vfs-cache-min-free-space 10G \
--vfs-read-chunk-size 128M \ --vfs-read-chunk-size 128M \
--vfs-read-chunk-size-limit off \ --vfs-read-chunk-size-limit off \
--vfs-write-back 20s \ --vfs-write-back 20s \

View File

@@ -72,16 +72,31 @@ nextcloud_user_ini:
option: max_execution_time option: max_execution_time
value: 3600 value: 3600
nextcloud_apps: nextcloud_occ_install_app:
- bruteforcesettings
- calendar - calendar
- contacts - contacts
- external - external
- extract - extract
- groupfolders - groupfolders
- metadata
- notes - notes
- notify_push - notify_push
- suspicious_login
- tables
- tasks - tasks
- twofactor_nextcloud_notification
- twofactor_totp - twofactor_totp
- end_to_end_encryption
nextcloud_occ_config_app:
- "preview jpeg_quality --value=60"
- "previewgenerator squareSizes --value='256 1024'"
- "previewgenerator widthSizes --value=2048"
- "previewgenerator heightSizes --value=2048"
- "files_trashbin background_job_expire_trash --value=no"
- "files_versions background_job_expire_versions --value=no"
- "files max_chunk_size --value 134217728"
nextcloud_exporter_install_dir: "/usr/local/bin" nextcloud_exporter_install_dir: "/usr/local/bin"
nextcloud_exporter_system_group: "node-exporter" nextcloud_exporter_system_group: "node-exporter"