summaryrefslogtreecommitdiff
path: root/roles/elevate
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2022-02-13 21:36:55 +0100
committerChristian Pointner <equinox@spreadspace.org>2022-02-13 21:36:55 +0100
commit25d8cbc59d94d7ffdb9d25a89d4a8c151225435c (patch)
tree4f6533304e67fe54c5d77706a4d129fa08496956 /roles/elevate
parentele-media: new and improved dstat.sh (diff)
do some more cleanup of elevate/media role
Diffstat (limited to 'roles/elevate')
-rw-r--r--roles/elevate/media/tasks/main.yml4
-rw-r--r--roles/elevate/media/tasks/nextcloud-config.yml2
-rw-r--r--roles/elevate/media/tasks/nextcloud.yml211
3 files changed, 38 insertions, 179 deletions
diff --git a/roles/elevate/media/tasks/main.yml b/roles/elevate/media/tasks/main.yml
index cc32348b..097f0c1b 100644
--- a/roles/elevate/media/tasks/main.yml
+++ b/roles/elevate/media/tasks/main.yml
@@ -8,8 +8,8 @@
- name: configure samba
import_tasks: samba.yml
-# - name: install and configure nextcloud
-# import_tasks: nextcloud.yml
+- name: install and configure nextcloud
+ import_tasks: nextcloud.yml
- name: install dstat script
template:
diff --git a/roles/elevate/media/tasks/nextcloud-config.yml b/roles/elevate/media/tasks/nextcloud-config.yml
index 60f923ce..8f648d9b 100644
--- a/roles/elevate/media/tasks/nextcloud-config.yml
+++ b/roles/elevate/media/tasks/nextcloud-config.yml
@@ -1,4 +1,6 @@
---
+### TODO: replace calls to occ with nextcloud-occ script installed by role apps/nextcloud
+
## TODO: this is idempotent but flagging change would be nice
- name: enable files_external app
command: docker exec -u www-data nextcloud.service /var/www/html/occ app:enable files_external
diff --git a/roles/elevate/media/tasks/nextcloud.yml b/roles/elevate/media/tasks/nextcloud.yml
index ec0c7807..e24bf32d 100644
--- a/roles/elevate/media/tasks/nextcloud.yml
+++ b/roles/elevate/media/tasks/nextcloud.yml
@@ -1,178 +1,35 @@
---
-- name: prepare nextcloud system disk as LVM
- when: nextcloud_lvm.system is defined
- vars:
- lvm_volume:
- vg: "{{ nextcloud_lvm.system.vg }}"
- lv: "{{ nextcloud_lvm.system.lv }}"
- size: "{{ nextcloud_lvm.system.size }}"
- fs: "{{ nextcloud_lvm.system.fs }}"
- dest: /srv/nextcloud
- include_role:
- name: storage/lvm/volume
-
-- name: prepare nextcloud data disk as LVM
- when: nextcloud_lvm.data is defined
- vars:
- lvm_volume:
- vg: "{{ nextcloud_lvm.data.vg }}"
- lv: "{{ nextcloud_lvm.data.lv }}"
- size: "{{ nextcloud_lvm.data.size }}"
- fs: "{{ nextcloud_lvm.data.fs }}"
- dest: /srv/ncdata
- include_role:
- name: storage/lvm/volume
-
-- name: create nextcloud config directory
- file:
- path: /srv/nextcloud/config/
- state: directory
-
-- name: install nextcloud fpm config snippet
- template:
- src: nextcloud-fpm.conf.j2
- dest: /srv/nextcloud/config/nextcloud-fpm.conf
-
-
-- name: create docker build-context for patched nextcloud image
- file:
- path: /srv/nextcloud/docker/
- state: directory
-
-- name: install Dockerfile for patched nextcloud image
- template:
- src: nextcloud-Dockerfile.j2
- dest: /srv/nextcloud/docker/Dockerfile
- register: nextcloud_dockerfile
-
-- name: build patched nextcloud image
- docker_image:
- state: present
- name: nextcloud
- tag: "{{ inventory_hostname }}"
- source: build
- build:
- path: /srv/nextcloud/docker/
- pull: no
- force_source: "{{ nextcloud_dockerfile.changed }}"
-
-### TODO: set mysql variables:
-### <snip>
-### [mysqld]
-### transaction_isolation = READ-COMMITTED
-### binlog_format = ROW
-### </snip>
-
-- name: create nextcloud database
- mysql_db:
- check_implicit_admin: yes
- db: "{{ nextcloud_db.db }}"
- encoding: utf8mb4
- collation: utf8mb4_general_ci
- state: present
-
-- name: create nextcloud database user
- mysql_user:
- check_implicit_admin: yes
- name: "{{ nextcloud_db.user }}"
- password: "{{ nextcloud_db.password }}"
- priv: "{{ nextcloud_db.db }}.*:SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES"
- state: present
-
-
-## to purge exisiting installation run the following commands (!!! will delete all data and the DB !!!):
-#
-# systemctl disable nextcloud-cron.timer
-# systemctl stop nextcloud-cron.timer
-# systemctl disable nextcloud-rescan.timer
-# systemctl stop nextcloud-rescan.timer
-# systemctl disable nextcloud.service
-# systemctl stop nextcloud.service
-# docker rm nextcloud.service
-# rm -rf /srv/nextcloud/config/nextcloud
-# rm -rf /srv/ncdata/nextcloud
-# rm -rf /srv/nextcloud/www
-# echo "drop database nextcloud;" | mysql --defaults-extra-file=/etc/mysql/debian.cnf
-#
-- name: check if nextcloud is already configured
- stat:
- path: /srv/nextcloud/config/nextcloud/config.php
- register: nextcloud_config_file
-
-- name: running nextcloud installer
- when: not nextcloud_config_file.stat.exists
- docker_container:
- name: nextcloud.installer
- image: "nextcloud:{{ inventory_hostname }}"
- ## For some reasons a newly created database schema is not up to date with the recommended settings...
- ## so we will run the migrations right away. If in future this is not needed anymore use '/bin/true' here.
- command: 'su -p www-data -s /bin/sh -c "php /var/www/html/occ db:convert-filecache-bigint"'
- network_mode: host
- detach: no
- auto_remove: yes
- volumes:
- - /srv/nextcloud/www:/var/www/html
- - /srv/nextcloud/config/nextcloud-fpm.conf:/usr/local/etc/php-fpm.d/zzzzz.conf
- - /srv/nextcloud/config/nextcloud:/var/www/html/config
- - /srv/ncdata/nextcloud:/var/www/html/data
- - /srv/smbdata/share:/srv/external/share
- env:
- NEXTCLOUD_UPDATE: '1'
- NEXTCLOUD_TRUSTED_DOMAINS: "{{ nextcloud_hostnames | join(' ') }}"
- MYSQL_DATABASE: "{{ nextcloud_db.db }}"
- MYSQL_HOST: "127.0.0.1:3306"
- MYSQL_USER: "{{ nextcloud_db.user }}"
- MYSQL_PASSWORD: "{{ nextcloud_db.password }}"
- NEXTCLOUD_ADMIN_USER: "{{ nextcloud_admin.username }}"
- NEXTCLOUD_ADMIN_PASSWORD: "will-be-changed-later"
-
-- name: configure nextcloud upload file size limit
- loop:
- - upload_max_filesize
- - post_max_size
- lineinfile:
- path: /srv/nextcloud/www/.user.ini
- regexp: '^{{ item }}='
- line: '{{ item }}={{ nextcloud_max_upload_size }}'
-
-- name: configure nextcloud memory limit
- lineinfile:
- path: /srv/nextcloud/www/.user.ini
- regexp: '^memory_limit='
- line: 'memory_limit={{ nextcloud_memory_limit }}'
-
-- name: install nextcloud service unit
- template:
- src: nextcloud.service.j2
- dest: /etc/systemd/system/nextcloud.service
- register: nextcloud_service
-
-- name: make sure nextcloud is started and enabled
- systemd:
- name: nextcloud.service
- state: "{% if nextcloud_service.changed %}restarted{% else %}started{% endif %}"
- enabled: yes
- daemon_reload: yes
-
-- name: basic nextcloud config
- import_tasks: nextcloud-config.yml
-
-- name: install nextcloud systemd units
- loop:
- - cron.service
- - cron.timer
- - rescan.service
- - rescan.timer
- template:
- src: "nextcloud-{{ item }}.j2"
- dest: "/etc/systemd/system/nextcloud-{{ item }}"
-
-- name: make sure nextcloud systemd timer are started and enabled
- loop:
- - cron
- - rescan
- systemd:
- name: "nextcloud-{{ item }}.timer"
- state: started
- enabled: yes
- daemon_reload: yes
+## TODO: include role: apps/nextcloud
+
+# - name: configure nextcloud upload file size limit
+# loop:
+# - upload_max_filesize
+# - post_max_size
+# lineinfile:
+# path: /srv/nextcloud/www/.user.ini
+# regexp: '^{{ item }}='
+# line: '{{ item }}={{ nextcloud_max_upload_size }}'
+
+# - name: configure nextcloud memory limit
+# lineinfile:
+# path: /srv/nextcloud/www/.user.ini
+# regexp: '^memory_limit='
+# line: 'memory_limit={{ nextcloud_memory_limit }}'
+
+# - name: basic nextcloud config
+# import_tasks: nextcloud-config.yml
+
+# - name: install nextcloud rescan systemd units
+# loop:
+# - service
+# - timer
+# template:
+# src: "nextcloud-rescan.{{ item }}.j2"
+# dest: "/etc/systemd/system/nextcloud-rescan.{{ item }}"
+
+# - name: make sure nextcloud rescan systemd timer are started and enabled
+# systemd:
+# name: "nextcloud-rescan.timer"
+# state: started
+# enabled: yes
+# daemon_reload: yes