From d0caf506f99daf876f1ed5fddd7810902b277f6e Mon Sep 17 00:00:00 2001 From: phil Date: Sat, 8 Oct 2022 22:47:54 +0200 Subject: [PATCH] nextcloud: Aktualisiere Variablen, automatische Versionsermittlung --- defaults/main.yml | 13 ++----------- tasks/common.yml | 18 +++++++++++++++--- tasks/database.yml | 1 - tasks/nextcloud.yml | 18 ++++++++++-------- .../apache_site.conf.j2 | 2 +- 5 files changed, 28 insertions(+), 24 deletions(-) rename files/apache_site.conf => templates/apache_site.conf.j2 (95%) diff --git a/defaults/main.yml b/defaults/main.yml index 68f96c6..f0afc5a 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -2,22 +2,13 @@ nextcloud_admin_user: systemausfall.org nextcloud_admin_pw: admin nextcloud_db_password: "{{ lookup('password', '/tmp/{{ instance.name }}_db_pwd length=42 chars=ascii_letters,digits') }}" -nextcloud_dl_url: https://download.nextcloud.com/server/releases +nextcloud_github_api_url: https://api.github.com/repos/nextcloud/server/releases/latest +nextcloud_dl_url: "https://download.nextcloud.com/server/releases/nextcloud-{{ latest_version.stdout }}.tar.bz2" nextcloud_root: /data/nextcloud nextcloud_install_path: "{{ nextcloud_root }}/{{ instance.name }}" nextcloud_config_file: "{{ nextcloud_install_path }}/config/config.php" nextcloud_php_memory_limit: 512M nextcloud_php_upload_limit: 512M nextcloud_trusted_domains: ['localhost', '{{ instance.name }}'] -nextcloud_trusted_proxies: ['10.42.7.1'] -nextcloud_version: nextcloud-22.2.0 -nextcloud_mail_from: noreply -nextcloud_mail_domain: postfach.senselab.org -nextcloud_smtp_auth_type: LOGIN -nextcloud_smtp_host: sl-postbote.kahlo -nextcloud_smtp_port: 25 - -php_fpm_log_dir: /var/log/phpfpm -php_fpm_pool_dir: /etc/php/{{ php_version.stdout }}/fpm/pool.d redis_config_file: /etc/redis/redis.conf diff --git a/tasks/common.yml b/tasks/common.yml index 06d0d17..29fbcdd 100644 --- a/tasks/common.yml +++ b/tasks/common.yml @@ -8,15 +8,20 @@ - { name: expires } - { name: headers } - { name: macro } - - { name: mpm_prefork, state: absent } - { name: mpm_event } + - { name: mpm_prefork, state: absent } - { name: proxy_fcgi } - { name: setenvif } notify: restart apache +- name: "common | Apache-Konfiguration für NC-Seiten" + file: + path: /etc/apache2/conf-available/nextcloud_sites.conf + state: touch + - name: "common | Apache-Vorlage für Seitenkonfiguration kopieren" - copy: - src: ../roles/nextcloud/files/apache_site.conf + template: + src: ../roles/nextcloud/templates/apache_site.conf.j2 dest: /etc/apache2/sites-available/nextcloud.conf - name: "common | Apache-Seitenkonfiguration aktivieren" @@ -37,6 +42,13 @@ dest: "/etc/php/{{ php_version.stdout }}/cli/conf.d/30-sao-nextcloud.ini" state: link +- name: "common | Ermittle letzte Version" + shell: + cmd: curl -sL "{{ nextcloud_github_api_url }}" | jq -r ".tag_name" | cut -d 'v' -f2 + warn: false + changed_when: false + register: latest_version + - name: "common | Kopiere Update-Skript" template: src: ../roles/nextcloud/templates/nextcloud-updater.j2 diff --git a/tasks/database.yml b/tasks/database.yml index 173493a..71e9301 100644 --- a/tasks/database.yml +++ b/tasks/database.yml @@ -5,7 +5,6 @@ state: present login_unix_socket: "{{ mysql_socket }}" login_user: root - config_file: /etc/mysql/debian.cnf delegate_to: "{{ database_host }}" - name: "database | {{ instance.name }} | Benutzer einrichten" diff --git a/tasks/nextcloud.yml b/tasks/nextcloud.yml index b7bff04..26e65d8 100644 --- a/tasks/nextcloud.yml +++ b/tasks/nextcloud.yml @@ -7,21 +7,23 @@ - name: "nextcloud: {{ instance.name }}: herunterladen und entpacken" unarchive: - src: "{{ nextcloud_dl_url }}/{{ nextcloud_version }}.tar.bz2" + src: "{{ nextcloud_dl_url }}" remote_src: true extra_opts: - "--strip-components=1" dest: "{{ nextcloud_install_path }}" - owner: "{{ user }}" - group: "{{ user }}" + owner: "{{ instance.user }}" + group: "{{ instance.user }}" mode: 0755 - name: "nextcloud: {{ instance.name }}: Installation" - command: > - php "{{ nextcloud_install_path }}"/occ maintenance:install --database "mysql" - --database-name "{{ instance.database }}" --database-user "{{ instance.database }}" - --database-pass "{{ nextcloud_db_password }}" --database-host "{{ database_host }}" - --admin-user "{{ nextcloud_admin_user }}" --admin-pass "{{ nextcloud_admin_pw }}" + command: + cmd: > + php occ maintenance:install --database "mysql" + --database-name "{{ instance.database }}" --database-user "{{ instance.database }}" + --database-pass "{{ nextcloud_db_password }}" --database-host "{{ database_host }}" + --admin-user "{{ nextcloud_admin_user }}" --admin-pass "{{ nextcloud_admin_pw }}" + chdir: "{{ nextcloud_install_path }}" become: true become_user: "{{ instance.user }}" changed_when: true diff --git a/files/apache_site.conf b/templates/apache_site.conf.j2 similarity index 95% rename from files/apache_site.conf rename to templates/apache_site.conf.j2 index 6db0a57..edce610 100644 --- a/files/apache_site.conf +++ b/templates/apache_site.conf.j2 @@ -19,7 +19,7 @@ - + Require all granted AllowOverride All Options FollowSymLinks MultiViews