From 188ed74cc909bae0cbdcad128e4c807b1497c81c Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Tue, 24 Dec 2019 09:34:22 +0100 Subject: [PATCH] Add support for files root not being outside Drupal root, mainly required for D7 sites --- tasks/files.yml | 7 +++++-- tasks/files_mount.yml | 2 +- tasks/install.yml | 39 +++++++++++++++++++++++++-------------- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/tasks/files.yml b/tasks/files.yml index 36c39cf..44446ee 100644 --- a/tasks/files.yml +++ b/tasks/files.yml @@ -5,7 +5,7 @@ - name: Set facts set_fact: - dir: '{{ webRoot }}/files/{{ drupal_domain.0.shortname|default("default") }}/{{ drupal_domain.1 }}' + dir: '{{ filesRoot }}/{{ drupal_domain.0.shortname|default("default") }}/{{ drupal_domain.1 }}' src: '{{ relativeRoot }}/files/{{ drupal_domain.0.shortname|default("default") }}/{{ drupal_domain.1 }}' dest: '{{ drupalRoot }}/sites/{{ drupal_domain.0.shortname|default("default") }}/{{ drupal_domain.1 }}' @@ -20,15 +20,17 @@ group: '{{ apacheUser }}' mode: 0755 ignore_errors: yes + when: drupal.files_outside_root|default(true) - name: Check the status of the File Directory stat: path: '{{ dest }}' register: directory + when: drupal.files_outside_root|default(true) - name: Move existing File Directory shell: rm -rf {{ dir }} && mv {{ dest }} {{ dir }} - when: directory.stat.exists and directory.stat.isdir + when: drupal.files_outside_root|default(true) and directory.stat.exists and directory.stat.isdir - name: Link Site Directory to File Directory file: @@ -38,6 +40,7 @@ owner: '{{ apacheUser }}' group: '{{ apacheUser }}' mode: 0755 + when: drupal.files_outside_root|default(true) - name: Ensure .htaccess template: diff --git a/tasks/files_mount.yml b/tasks/files_mount.yml index aefaed2..bf8f236 100644 --- a/tasks/files_mount.yml +++ b/tasks/files_mount.yml @@ -14,7 +14,7 @@ - name: Link webroot to mounted directory file: src: '{{ drupal_domain.0.mountpoint }}/{{ drupal.id }}/{{ drupal_domain.0.shortname|default("default") }}' - dest: '{{ webRoot }}/files/{{ drupal_domain.0.shortname|default("default") }}' + dest: '{{ filesRoot }}/{{ drupal_domain.0.shortname|default("default") }}' state: link owner: '{{ apacheUser }}' group: '{{ apacheUser }}' diff --git a/tasks/install.yml b/tasks/install.yml index b75c810..f894b2c 100644 --- a/tasks/install.yml +++ b/tasks/install.yml @@ -26,6 +26,17 @@ relativeRoot: '{{ drupal.relativeRoot|default(drupal_links_relative_root) }}' drupalRoot: '{{ webRoot }}{{ drupal.root|default("") }}' docRoot: '{{ webRoot }}{{ drupal.docroot|default(drupal.root|default("")) }}' + - name: Set files facts + set_fact: + configRoot: '{{ webRoot }}/config' + filesRoot: '{{ webRoot }}/files' + settingsRoot: '{{ webRoot }}/settings' + - name: Set files facts when files not outside root + set_fact: + configRoot: '{{ drupalRoot }}/sites' + filesRoot: '{{ drupalRoot }}/sites' + settingsRoot: '{{ drupalRoot }}/sites' + when: not drupal.files_outside_root|default(true) tags: - always @@ -143,7 +154,7 @@ - name: Ensure Files Directory file: - path: '{{ webRoot }}/files' + path: '{{ filesRoot }}' state: directory owner: '{{ apacheUser }}' group: '{{ apacheUser }}' @@ -180,7 +191,7 @@ - name: Create the settings.php files template: src: '{{ drupal.template_dir|default("") }}{{ drupal.version|default("d7") }}_settings.php.jinja2' - dest: '{{ webRoot }}/settings/{{ item.shortname|default("default") }}/settings.php' + dest: '{{ settingsRoot }}/{{ item.shortname|default("default") }}/settings.php' backup: yes with_items: '{{ drupal.domains }}' tags: @@ -190,7 +201,7 @@ - name: Add deploy info to settings.local.php files lineinfile: - path: '{{ webRoot }}/settings/{{ item.0.shortname|default("default") }}/settings.local.php' + path: '{{ settingsRoot }}/{{ item.0.shortname|default("default") }}/settings.local.php' create: yes regex: '{{ item.1.regex }}' line: '{{ item.1.line }}' @@ -219,14 +230,14 @@ state: link force: yes with_items: '{{ drupal.domains }}' - when: item.install|default(true) + when: drupal.files_outside_root|default(true) and item.install|default(true) - block: - name: Create the drush.yml files template: src: drush-9.yml.jinja2 - dest: '{{ webRoot }}/settings/{{ item.shortname|default("default") }}/drush.yml' + dest: '{{ settingsRoot }}/{{ item.shortname|default("default") }}/drush.yml' with_items: '{{ drupal.domains }}' when: item.install|default(true) @@ -237,7 +248,7 @@ state: link force: yes with_items: '{{ drupal.domains }}' - when: item.install|default(true) + when: drupal.files_outside_root|default(true) and item.install|default(true) tags: - deploy @@ -259,9 +270,9 @@ follow: no with_items: - '{{ docRoot }}' - - '{{ webRoot }}/config' - - '{{ webRoot }}/files' - - '{{ webRoot }}/settings' + - '{{ configRoot }}' + - '{{ filesRoot }}' + - '{{ settingsRoot }}' tags: - deploy - SetPermissions @@ -275,8 +286,8 @@ recurse: yes follow: no with_items: - - '{{ webRoot }}/config' - - '{{ webRoot }}/files' + - '{{ configRoot }}' + - '{{ filesRoot }}' tags: - deploy - SetPermissions @@ -315,14 +326,14 @@ when: item.0.install|default(true) - name: Set Extended Default Permissions - command: 'setfacl -dRm u:{{ apacheUser }}:rwX,g:{{ apacheUser }}:rwX,o::rX {{ webRoot }}/files' + command: 'setfacl -dRm u:{{ apacheUser }}:rwX,g:{{ apacheUser }}:rwX,o::rX {{ filesRoot }}' tags: - deploy - SetPermissions when: drupal.install_extra_dirs|default(true) - name: Set Extended Permissions - command: 'setfacl -Rm u:{{ apacheUser }}:rwX,g:{{ apacheUser }}:rwX,o::rX {{ webRoot }}/files' + command: 'setfacl -Rm u:{{ apacheUser }}:rwX,g:{{ apacheUser }}:rwX,o::rX {{ filesRoot }}' tags: - deploy - SetPermissions @@ -330,7 +341,7 @@ - name: Make htaccess read-only file: - path: '{{ webRoot }}/files/{{ drupal_domain.0.shortname|default("default") }}/{{ drupal_domain.1 }}/.htaccess' + path: '{{ filesRoot }}/{{ drupal_domain.0.shortname|default("default") }}/{{ drupal_domain.1 }}/.htaccess' mode: 0444 with_nested: - '{{ drupal.domains }}' -- GitLab