From cc8cb3f30da25c1142c67f0e5d4c0bf161c6151c Mon Sep 17 00:00:00 2001 From: Markus Katharina Brechtel Date: Fri, 12 Oct 2018 21:31:56 +0000 Subject: [PATCH] more improvements --- defaults/main.yml | 7 ++++-- tasks/access.yml | 18 +++++++++++---- tasks/apache2.yml | 5 ++++ tasks/apps.yml | 8 +++---- tasks/check.yaml | 6 ++--- tasks/configure.yml | 10 ++++---- tasks/core.yml | 39 ++++++++++++++++++++++++-------- tasks/install.yml | 13 ++++++++--- tasks/main.yml | 2 +- tasks/reset.yml | 7 +++++- tasks/upgrade.yml | 2 +- templates/apache-vhost.conf.j2 | 8 +++---- templates/config.php.j2 | 2 +- templates/nextcloud-cron.service | 2 +- 14 files changed, 88 insertions(+), 41 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index bace1c2..05309a2 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -2,9 +2,12 @@ nextcloud_state: installed nextcloud_archive_directory: /opt/nextcloud -nextcloud_directory: /var/www/nextcloud +nextcloud_directory: /var/www/nextcloud-{{nextcloud_version}} -nextcloud_data_directory: /var/lib/nextcloud/data +nextcloud_lib_directory: /var/lib/nextcloud +nextcloud_data_directory: "{{nextcloud_lib_directory}}/data" + +nextcloud_log_directory: /var/log/nextcloud nextcloud_version: 14.0.3 diff --git a/tasks/access.yml b/tasks/access.yml index 2e4852f..4565d3d 100644 --- a/tasks/access.yml +++ b/tasks/access.yml @@ -2,7 +2,7 @@ - name: nextcloud directory file: - path: /var/www/nextcloud + path: "{{nextcloud_directory}}" state: directory owner: root group: www-data @@ -10,7 +10,7 @@ - name: nextcloud subdirectories file: - path: /var/www/nextcloud/{{item}} + path: "{{nextcloud_directory}}/{{item}}" state: directory owner: www-data group: www-data @@ -20,7 +20,14 @@ - apps - themes - updater - - data + +- name: nextcloud data directory + file: + path: "{{nextcloud_lib_directory}}" + state: directory + owner: www-data + group: www-data + mode: 0750 - name: nextcloud data directory file: @@ -28,18 +35,19 @@ state: directory owner: www-data group: www-data + mode: 0750 recurse: yes - name: nextcloud log directory file: - path: /var/log/nextcloud + path: "{{nextcloud_log_directory}}" state: directory owner: www-data group: www-data - name: nextcloud htaccess webserver access file: - path: /var/www/nextcloud/.htaccess + path: "{{nextcloud_directory}}/.htaccess" state: file owner: www-data group: www-data diff --git a/tasks/apache2.yml b/tasks/apache2.yml index f42e25f..89df7b7 100644 --- a/tasks/apache2.yml +++ b/tasks/apache2.yml @@ -28,3 +28,8 @@ src: apache2-ports.conf.j2 dest: /etc/apache2/ports.conf notify: restart apache2 + +- name: start apache2 + service: + name: apache2 + state: started diff --git a/tasks/apps.yml b/tasks/apps.yml index 8f73d84..4038b10 100644 --- a/tasks/apps.yml +++ b/tasks/apps.yml @@ -3,7 +3,7 @@ - name: occ app list command: php occ app:list args: - chdir: /var/www/nextcloud + chdir: "{{nextcloud_directory}}" register: _nextcloud_occ_app_list changed_when: false become: true @@ -14,7 +14,7 @@ command: php occ app:install {{item}} with_items: "{{ nextcloud_apps | difference(_nextcloud_apps_present) }}" args: - chdir: /var/www/nextcloud + chdir: "{{nextcloud_directory}}" become: true become_user: www-data become_method: sudo @@ -22,7 +22,7 @@ - name: occ app list command: php occ app:list args: - chdir: /var/www/nextcloud + chdir: "{{nextcloud_directory}}" register: _nextcloud_occ_app_list changed_when: false become: true @@ -33,7 +33,7 @@ command: php occ app:enable {{item}} with_items: "{{ nextcloud_apps | difference(_nextcloud_apps_enabled) }}" args: - chdir: /var/www/nextcloud + chdir: "{{nextcloud_directory}}" become: true become_user: www-data become_method: sudo diff --git a/tasks/check.yaml b/tasks/check.yaml index 0f2542a..90bfb4b 100644 --- a/tasks/check.yaml +++ b/tasks/check.yaml @@ -3,7 +3,7 @@ - name: nextcloud core integrity check command: php occ integrity:check-core args: - chdir: /var/www/nextcloud + chdir: {{nextcloud_directory}} changed_when: false become: true become_user: www-data @@ -12,7 +12,7 @@ - name: occ app list command: php occ app:list args: - chdir: /var/www/nextcloud + chdir: {{nextcloud_directory}} register: _nextcloud_occ_app_list changed_when: false become: true @@ -23,7 +23,7 @@ command: php occ integrity:check-app {{item}} with_items: "{{ _nextcloud_apps_present }}" args: - chdir: /var/www/nextcloud + chdir: {{nextcloud_directory}} changed_when: false become: true become_user: www-data diff --git a/tasks/configure.yml b/tasks/configure.yml index 0927914..39f4175 100644 --- a/tasks/configure.yml +++ b/tasks/configure.yml @@ -5,32 +5,32 @@ - name: nextcloud list config command: php occ config:list args: - chdir: /var/www/nextcloud + chdir: "{{nextcloud_directory}}" register: _nextcloud_config_cmd changed_when: false - name: nextcloud occ config:app:delete trusted_domains command: php occ config:system:delete trusted_domains args: - chdir: /var/www/nextcloud + chdir: "{{nextcloud_directory}}" when: _nextcloud_config.system.trusted_domains != nextcloud_server_names - name: nextcloud occ config:system:set trusted_domains command: php occ config:system:set trusted_domains {{ item.0 }} --value={{ item.1 }} args: - chdir: /var/www/nextcloud + chdir: "{{nextcloud_directory}}" with_indexed_items: "{{ nextcloud_server_names }}" when: _nextcloud_config.system.trusted_domains != nextcloud_server_names - name: nextcloud occ maintenance:update:htaccess command: php occ maintenance:update:htaccess args: - chdir: /var/www/nextcloud + chdir: "{{nextcloud_directory}}" - name: nextcloud occ background:cron command: php occ background:cron args: - chdir: /var/www/nextcloud + chdir: "{{nextcloud_directory}}" become: true become_user: www-data diff --git a/tasks/core.yml b/tasks/core.yml index f07585f..4234191 100644 --- a/tasks/core.yml +++ b/tasks/core.yml @@ -5,37 +5,56 @@ url: https://apps.nextcloud.com/api/v1/platforms.json register: _nextcloud_platforms +- name: nextcloud version dir + file: + path: "{{nextcloud_archive_directory}}/{{ nextcloud_version }}" + state: directory + - name: nextcloud core archive checksum download get_url: url: https://download.nextcloud.com/server/releases/nextcloud-{{ nextcloud_version }}.tar.bz2.sha256 - dest: "{{nextcloud_archive_directory}}/nextcloud-{{ nextcloud_version }}.tar.bz2.sha256" + dest: "{{nextcloud_archive_directory}}/{{ nextcloud_version }}/nextcloud-{{ nextcloud_version }}.tar.bz2.sha256" - name: nextcloud core archive checksum - shell: cat "{{nextcloud_archive_directory}}/nextcloud-{{ nextcloud_version }}.tar.bz2.sha256" + shell: cat "{{nextcloud_archive_directory}}/{{ nextcloud_version }}/nextcloud-{{ nextcloud_version }}.tar.bz2.sha256" register: _nextcloud_server_archive_checksum changed_when: false - name: nextcloud core archive download get_url: url: https://download.nextcloud.com/server/releases/nextcloud-{{ nextcloud_version }}.tar.bz2 - dest: "{{nextcloud_archive_directory}}/nextcloud-{{ nextcloud_version }}.tar.bz2" + dest: "{{nextcloud_archive_directory}}/{{ nextcloud_version }}/nextcloud-{{ nextcloud_version }}.tar.bz2" checksum: sha256:{{ _nextcloud_server_archive_checksum.stdout_lines[0].split(' ')[0] }} - name: nextcloud core archive signature download get_url: url: https://download.nextcloud.com/server/releases/nextcloud-{{ nextcloud_version }}.tar.bz2.asc - dest: "{{nextcloud_archive_directory}}/nextcloud-{{ nextcloud_version }}.tar.bz2.asc" + dest: "{{nextcloud_archive_directory}}/{{ nextcloud_version }}/nextcloud-{{ nextcloud_version }}.tar.bz2.asc" - name: nextcloud core archive signature check command: gpg --no-default-keyring --keyring "{{nextcloud_archive_directory}}/keyring.gpg" - --verify "{{nextcloud_archive_directory}}/nextcloud-{{ nextcloud_version }}.tar.bz2.asc" - "{{nextcloud_archive_directory}}/nextcloud-{{ nextcloud_version }}.tar.bz2" + --verify "{{nextcloud_archive_directory}}/{{ nextcloud_version }}/nextcloud-{{ nextcloud_version }}.tar.bz2.asc" + "{{nextcloud_archive_directory}}/{{ nextcloud_version }}/nextcloud-{{ nextcloud_version }}.tar.bz2" changed_when: false -- name: nextcloud core extract +- name: nextcloud core archive extract unarchive: - src: "{{nextcloud_archive_directory}}/nextcloud-{{ nextcloud_version }}.tar.bz2" + src: "{{nextcloud_archive_directory}}/{{ nextcloud_version }}/nextcloud-{{ nextcloud_version }}.tar.bz2" remote_src: yes - dest: /var/www/ + dest: "{{nextcloud_archive_directory}}/{{ nextcloud_version }}" owner: root - group: www-data + group: root + +- name: nextcloud core archive sync + synchronize: + src: "{{nextcloud_archive_directory}}/{{ nextcloud_version }}/nextcloud/" + dest: "{{nextcloud_directory}}" + archive: no + recursive: yes + delegate_to: '{{ inventory_hostname }}' + +- name: link to current nextcloud directory + file: + src: "{{nextcloud_directory}}" + dest: /var/www/nextcloud + state: link diff --git a/tasks/install.yml b/tasks/install.yml index fe1c3f1..66da550 100644 --- a/tasks/install.yml +++ b/tasks/install.yml @@ -2,13 +2,19 @@ - name: check for config file stat: - path: /var/www/nextcloud/config/config.php + path: "{{nextcloud_directory}}/config/config.php" register: _nextcloud_config_file +- name: stop apache2 + service: + name: apache2 + state: stopped + when: not _nextcloud_config_file.stat.isreg is defined + - name: nextcloud initial config file template: src: config.php.j2 - dest: /var/www/nextcloud/config/config.php + dest: "{{nextcloud_directory}}/config/config.php" owner: www-data group: www-data when: not _nextcloud_config_file.stat.isreg is defined @@ -23,8 +29,9 @@ --database-name "{{ nextcloud_database_name }}" --database-user "{{ nextcloud_database_user }}" --database-pass "{{ nextcloud_database_pass }}" + --data-dir "{{ nextcloud_data_directory }}" args: - chdir: /var/www/nextcloud + chdir: "{{nextcloud_directory}}" become: true become_user: www-data become_method: sudo diff --git a/tasks/main.yml b/tasks/main.yml index 9642fb2..329be94 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -24,7 +24,7 @@ - import_tasks: apps.yml -- import_tasks: check.yaml +#- import_tasks: check.yaml - import_tasks: upgrade.yml diff --git a/tasks/reset.yml b/tasks/reset.yml index d053e56..381131e 100644 --- a/tasks/reset.yml +++ b/tasks/reset.yml @@ -1,8 +1,13 @@ --- +- name: stop apache2 + service: + name: apache2 + state: stopped + - name: delete nextcloud directory file: - path: /var/www/nextcloud + path: "{{nextcloud_directory}}" state: absent - name: drop mysql database diff --git a/tasks/upgrade.yml b/tasks/upgrade.yml index 2fad1d7..cf1e475 100644 --- a/tasks/upgrade.yml +++ b/tasks/upgrade.yml @@ -3,7 +3,7 @@ - name: upgrade nextcloud command: php occ upgrade args: - chdir: /var/www/nextcloud + chdir: "{{nextcloud_directory}}" become: true become_user: www-data become_method: sudo diff --git a/templates/apache-vhost.conf.j2 b/templates/apache-vhost.conf.j2 index ec56fdc..c82d5b8 100644 --- a/templates/apache-vhost.conf.j2 +++ b/templates/apache-vhost.conf.j2 @@ -17,9 +17,9 @@ Include /etc/letsencrypt/options-ssl-apache.conf {% endif %} - DocumentRoot /var/www/nextcloud + DocumentRoot {{nextcloud_directory}} - + Options +FollowSymlinks AllowOverride All @@ -28,8 +28,8 @@ Dav off - SetEnv HOME /var/www/nextcloud - SetEnv HTTP_HOME /var/www/nextcloud + SetEnv HOME {{nextcloud_directory}} + SetEnv HTTP_HOME {{nextcloud_directory}} diff --git a/templates/config.php.j2 b/templates/config.php.j2 index e771160..09ea390 100644 --- a/templates/config.php.j2 +++ b/templates/config.php.j2 @@ -8,7 +8,7 @@ $CONFIG = array( 'appcodechecker' => true, 'updatechecker' => true, 'log_type' => 'file', -'logfile' => '/var/log/nextcloud/nextcloud.log', +'logfile' => '{{nextcloud_log_directory}}/nextcloud.log', 'loglevel' => 2, 'logtimezone' => 'UTC', 'appstoreenabled' => true, diff --git a/templates/nextcloud-cron.service b/templates/nextcloud-cron.service index 8aa7b4d..ac3affd 100644 --- a/templates/nextcloud-cron.service +++ b/templates/nextcloud-cron.service @@ -4,7 +4,7 @@ Description=nextcloud cron job [Service] User=www-data Group=www-data -ExecStart=/usr/bin/php -f /var/www/nextcloud/cron.php +ExecStart=/usr/bin/php -f {{nextcloud_directory}}/cron.php [Install] WantedBy=basic.target