diff --git a/roles/_init/tasks/main.yml b/roles/_init/tasks/main.yml index f57be10e..3b04b4ec 100644 --- a/roles/_init/tasks/main.yml +++ b/roles/_init/tasks/main.yml @@ -53,6 +53,10 @@ ansible.builtin.set_fact: live_symlink_build_dest: "{{ live_symlink_build_dest | default('{{ build_base_path }}/live.{{ project_name }}_{{ build_type }}') }}" + - name: Stash current deploy path for later use where we need to manipulate the live site. + ansible.builtin.set_fact: + initial_deploy_path: "{{ deploy_path }}" + - name: Overwrite deploy and live_symlink paths if SquashFS deploy. ansible.builtin.set_fact: deploy_path: "{{ build_path | default('{{ build_path_prefix }}{{ build_number }}') }}" diff --git a/roles/maintenance_mode/maintenance_mode-drupal-core/tasks/online.yml b/roles/maintenance_mode/maintenance_mode-drupal-core/tasks/online.yml index 6b127f89..ab548596 100644 --- a/roles/maintenance_mode/maintenance_mode-drupal-core/tasks/online.yml +++ b/roles/maintenance_mode/maintenance_mode-drupal-core/tasks/online.yml @@ -7,7 +7,20 @@ become: "{{ 'no' if www_user == deploy_user else 'yes' }}" become_user: "{{ www_user }}" when: - - project_type == 'drupal8' + - project_type == "drupal8" + +# We want to also bring up the 'current' site with squashfs builds +- name: Disable live site maintenance mode if this is a squashfs build. + ansible.builtin.command: + cmd: "{{ drush_bin }} -l {{ site.folder }} state:set system.maintenance_mode 0 --input-format=integer --root {{ initial_deploy_path }}/{{ webroot }}/sites/{{ site.folder }}" + args: + chdir: "{{ initial_deploy_path }}/{{ webroot }}/sites/{{ site.folder }}" + become: "{{ 'no' if www_user == deploy_user else 'yes' }}" + become_user: "{{ www_user }}" + when: + - project_type == "drupal8" + - deploy_code.mount_type is defined + - deploy_code.mount_type == "squashfs" # For some reason D7 drush doesn't respect 'chdir' with command, using shell instead. - name: Disable maintenance mode D7. @@ -17,4 +30,16 @@ become: "{{ 'no' if www_user == deploy_user else 'yes' }}" become_user: "{{ www_user }}" when: - - project_type == 'drupal7' + - project_type == "drupal7" + +# We want to also bring up the 'current' site with squashfs builds +- name: Disable maintenance mode D7 if this is a squashfs build. + ansible.builtin.shell: + cmd: "{{ drush_bin }} -l {{ site.folder }} vset maintenance_mode 0" + chdir: "{{ initial_deploy_path }}/{{ webroot }}/sites/{{ site.folder }}" + become: "{{ 'no' if www_user == deploy_user else 'yes' }}" + become_user: "{{ www_user }}" + when: + - project_type == "drupal7" + - deploy_code.mount_type is defined + - deploy_code.mount_type == "squashfs" diff --git a/roles/maintenance_mode/maintenance_mode-nginx/tasks/main.yml b/roles/maintenance_mode/maintenance_mode-nginx/tasks/main.yml index 65531755..5f5377da 100644 --- a/roles/maintenance_mode/maintenance_mode-nginx/tasks/main.yml +++ b/roles/maintenance_mode/maintenance_mode-nginx/tasks/main.yml @@ -1,8 +1,8 @@ --- -- include_tasks: "{{ maintenance_mode.operation }}.yml" +- ansible.builtin.include_tasks: "{{ maintenance_mode.operation }}.yml" - name: Reload Nginx. - service: + ansible.builtin.service: name: nginx state: reloaded become: true diff --git a/roles/maintenance_mode/maintenance_mode-nginx/tasks/offline.yml b/roles/maintenance_mode/maintenance_mode-nginx/tasks/offline.yml index abcd2246..78fe1df5 100644 --- a/roles/maintenance_mode/maintenance_mode-nginx/tasks/offline.yml +++ b/roles/maintenance_mode/maintenance_mode-nginx/tasks/offline.yml @@ -1,6 +1,6 @@ --- - name: Disable active vhost. - file: + ansible.builtin.file: path: "/etc/nginx/sites-enabled/{{ domain.server_name }}.conf" state: absent with_items: "{{ maintenance_mode_nginx.domains }}" @@ -9,7 +9,7 @@ become: true - name: Enable maintenance vhost. - file: + ansible.builtin.file: src: "/etc/nginx/sites-available/{{ domain.server_name }}-maintenance.conf" dest: "/etc/nginx/sites-enabled/{{ domain.server_name }}-maintenance.conf" state: link diff --git a/roles/maintenance_mode/maintenance_mode-nginx/tasks/online.yml b/roles/maintenance_mode/maintenance_mode-nginx/tasks/online.yml index 59d59c5d..7ad26114 100644 --- a/roles/maintenance_mode/maintenance_mode-nginx/tasks/online.yml +++ b/roles/maintenance_mode/maintenance_mode-nginx/tasks/online.yml @@ -1,6 +1,6 @@ --- - name: Disable maintenance vhost. - file: + ansible.builtin.file: path: "/etc/nginx/sites-enabled/{{ domain.server_name }}-maintenance.conf" state: absent with_items: "{{ maintenance_mode_nginx.domains }}" @@ -9,7 +9,7 @@ become: true - name: Enable active vhost. - file: + ansible.builtin.file: src: "/etc/nginx/sites-available/{{ domain.server_name }}.conf" dest: "/etc/nginx/sites-enabled/{{ domain.server_name }}.conf" state: link diff --git a/roles/maintenance_mode/maintenance_mode-statuscake/tasks/main.yml b/roles/maintenance_mode/maintenance_mode-statuscake/tasks/main.yml index 15b5cac8..ea8de053 100644 --- a/roles/maintenance_mode/maintenance_mode-statuscake/tasks/main.yml +++ b/roles/maintenance_mode/maintenance_mode-statuscake/tasks/main.yml @@ -5,4 +5,4 @@ loop_var: domain run_once: true when: - - maintenance_mode_statuscake.domains | length > 0 \ No newline at end of file + - maintenance_mode_statuscake.domains | length > 0 diff --git a/roles/maintenance_mode/maintenance_mode-statuscake/tasks/offline.yml b/roles/maintenance_mode/maintenance_mode-statuscake/tasks/offline.yml index 62081308..1aeb574f 100644 --- a/roles/maintenance_mode/maintenance_mode-statuscake/tasks/offline.yml +++ b/roles/maintenance_mode/maintenance_mode-statuscake/tasks/offline.yml @@ -1,7 +1,7 @@ --- - name: Pause StatusCake check. ansible.builtin.uri: - url: "https://api.statuscake.com/v1/uptime/{{ domain.statuscake_check_id }}" + url: "https://api.statuscake.com/v1/uptime/{{ domain.statuscake_check_id | string }}" method: PUT body_format: form-urlencoded body: diff --git a/roles/maintenance_mode/maintenance_mode-statuscake/tasks/online.yml b/roles/maintenance_mode/maintenance_mode-statuscake/tasks/online.yml index 5818ed33..1bed8ec3 100644 --- a/roles/maintenance_mode/maintenance_mode-statuscake/tasks/online.yml +++ b/roles/maintenance_mode/maintenance_mode-statuscake/tasks/online.yml @@ -1,7 +1,7 @@ --- - name: Resume StatusCake check. ansible.builtin.uri: - url: "https://api.statuscake.com/v1/uptime/{{ domain.statuscake_check_id }}" + url: "https://api.statuscake.com/v1/uptime/{{ domain.statuscake_check_id | string }}" method: PUT body_format: form-urlencoded body: diff --git a/roles/maintenance_mode/tasks/main.yml b/roles/maintenance_mode/tasks/main.yml index 2fbf77ee..ed0ef7f0 100644 --- a/roles/maintenance_mode/tasks/main.yml +++ b/roles/maintenance_mode/tasks/main.yml @@ -1,5 +1,5 @@ --- -- include_role: +- ansible.builtin.include_role: name: "maintenance_mode/maintenance_mode-{{ maintenance_mode.mode }}" when: - deploy_operation != 'cleanup'