agaric-coop/box/provisioning/roles/geerlingguy.drupal/tasks/install-site.yml

43 lines
1.7 KiB
YAML

---
- name: Check if site is already installed.
command: "{{ drush_path }} --root={{ drupal_core_path }} status bootstrap"
args:
chdir: "{{ drupal_core_path }}"
register: drupal_site_installed
failed_when: "drupal_site_installed.stdout is undefined"
changed_when: false
become: no
# See: https://www.drupal.org/node/2569365#comment-11680807
- name: Configure database correctly if using PostgreSQL.
command: psql -c "ALTER DATABASE {{ drupal_db_name }} SET bytea_output = 'escape';"
when: "('Drupal bootstrap' not in drupal_site_installed.stdout) and (drupal_db_backend == 'pgsql')"
become: yes
become_user: "{{ postgresql_user }}"
# See: https://github.com/ansible/ansible/issues/16048#issuecomment-229012509
vars:
ansible_ssh_pipelining: true
- name: Install Drupal with drush.
command: >
{{ drush_path }} site-install {{ drupal_install_profile | default('standard') }} -y
--root={{ drupal_core_path }}
--site-name="{{ drupal_site_name }}"
--account-name={{ drupal_account_name }}
--account-pass={{ drupal_account_pass }}
--db-url={{ drupal_db_backend }}://{{ drupal_db_user }}:{{ drupal_db_password }}@{{ drupal_db_host }}/{{ drupal_db_name }}
{{ drupal_site_install_extra_args | join(" ") }}
args:
chdir: "{{ drupal_core_path }}"
notify: clear opcache
when: "'Drupal bootstrap' not in drupal_site_installed.stdout"
become: no
- name: Install configured modules with drush.
command: >
{{ drush_path }} pm-enable -y {{ drupal_enable_modules | join(" ") }}
--root={{ drupal_core_path }}
args:
chdir: "{{ drupal_core_path }}"
when: ('Drupal bootstrap' not in drupal_site_installed.stdout) and drupal_enable_modules
become: no