131 lines
5.2 KiB
YAML
131 lines
5.2 KiB
YAML
|
---
|
||
|
- hosts: all
|
||
|
become: yes
|
||
|
|
||
|
vars_files:
|
||
|
- vars/main.yml
|
||
|
- ../default.config.yml
|
||
|
|
||
|
pre_tasks:
|
||
|
- include: tasks/config.yml
|
||
|
tags: ['always']
|
||
|
|
||
|
- include: tasks/backwards-compatibility.yml
|
||
|
tags: ['always']
|
||
|
static: no
|
||
|
|
||
|
- include: "tasks/init-{{ ansible_os_family }}.yml"
|
||
|
static: no
|
||
|
|
||
|
- name: Run configured pre-provision shell scripts.
|
||
|
script: "{{ item }}"
|
||
|
with_items: "{{ pre_provision_scripts|default([]) }}"
|
||
|
|
||
|
- name: Run configured pre-provision ansible task files.
|
||
|
include: "{{ outer_item }}"
|
||
|
loop_control:
|
||
|
loop_var: outer_item
|
||
|
with_fileglob: "{{ pre_provision_tasks_dir|default(omit) }}"
|
||
|
|
||
|
- include: tasks/php.yml
|
||
|
|
||
|
roles:
|
||
|
# Essential roles.
|
||
|
- { role: geerlingguy.repo-remi, when: ansible_os_family == 'RedHat', tags: ['webserver', 'php'] }
|
||
|
- { role: drupalvm.hostname, when: hostname_configure }
|
||
|
- { role: geerlingguy.firewall, when: firewall_enabled }
|
||
|
- { role: geerlingguy.git }
|
||
|
- { role: geerlingguy.postfix }
|
||
|
- { role: geerlingguy.apache, when: drupalvm_webserver == 'apache', tags: ['webserver']}
|
||
|
- { role: geerlingguy.apache-php-fpm, when: drupalvm_webserver == 'apache', tags: ['webserver'] }
|
||
|
- { role: geerlingguy.nginx, when: drupalvm_webserver == 'nginx', tags: ['webserver'] }
|
||
|
- { role: geerlingguy.php-versions, when: php_version != '', tags: ['php', 'xdebug', 'database'] }
|
||
|
- { role: geerlingguy.php, tags: ['php'] }
|
||
|
- { role: geerlingguy.php-pecl, tags: ['php'] }
|
||
|
- { role: geerlingguy.composer }
|
||
|
- { role: geerlingguy.mysql, when: drupal_db_backend == 'mysql', tags: ['database'] }
|
||
|
- { role: geerlingguy.php-mysql, when: drupal_db_backend == 'mysql', tags: ['php', 'database'] }
|
||
|
- { role: geerlingguy.postgresql, when: drupal_db_backend == 'pgsql', tags: ['database'] }
|
||
|
- { role: geerlingguy.php-pgsql, when: drupal_db_backend == 'pgsql', tags: ['php', 'database'] }
|
||
|
|
||
|
# Conditionally-installed roles.
|
||
|
- { role: geerlingguy.drupal-console, when: 'drupal_major_version > 7 and "drupalconsole" in installed_extras' }
|
||
|
- { role: geerlingguy.drush, when: '"drush" in installed_extras' }
|
||
|
- { role: geerlingguy.memcached, when: '"memcached" in installed_extras' }
|
||
|
- { role: geerlingguy.php-memcached, when: '"memcached" in installed_extras', tags: ['php'] }
|
||
|
|
||
|
- role: geerlingguy.php-tideways
|
||
|
workspace: "/root/php{{ php_version }}"
|
||
|
when: '"tideways" in installed_extras'
|
||
|
tags: ['php']
|
||
|
|
||
|
- role: geerlingguy.php-xdebug
|
||
|
workspace: "/root/php{{ php_version }}"
|
||
|
when: '"xdebug" in installed_extras'
|
||
|
tags: ['php', 'xdebug']
|
||
|
|
||
|
- role: geerlingguy.php-xhprof
|
||
|
workspace: "/root/php{{ php_version }}"
|
||
|
when: '"xhprof" in installed_extras'
|
||
|
tags: ['php']
|
||
|
|
||
|
- role: thom8.php-upload-progress
|
||
|
workspace: "/root/php{{ php_version }}"
|
||
|
when: '"upload-progress" in installed_extras'
|
||
|
tags: ['php']
|
||
|
|
||
|
- { role: geerlingguy.blackfire, when: '"blackfire" in installed_extras' }
|
||
|
- { role: geerlingguy.adminer, when: '"adminer" in installed_extras', tags: ['database'] }
|
||
|
- { role: geerlingguy.pimpmylog, when: '"pimpmylog" in installed_extras' }
|
||
|
- { role: geerlingguy.daemonize, when: '"mailhog" in installed_extras' }
|
||
|
- { role: geerlingguy.mailhog, when: '"mailhog" in installed_extras' }
|
||
|
- { role: franklinkim.newrelic, when: '"newrelic" in installed_extras' }
|
||
|
- { role: geerlingguy.nodejs, when: '"nodejs" in installed_extras' }
|
||
|
- { role: geerlingguy.redis, when: '"redis" in installed_extras' }
|
||
|
- { role: geerlingguy.php-redis, when: '"redis" in installed_extras', tags: ['php'] }
|
||
|
- { role: geerlingguy.ruby, when: '"ruby" in installed_extras' }
|
||
|
|
||
|
- role: geerlingguy.java
|
||
|
when: >
|
||
|
"java" in installed_extras or
|
||
|
"solr" in installed_extras or
|
||
|
"selenium" in installed_extras or
|
||
|
"elasticsearch" in installed_extras
|
||
|
|
||
|
- { role: arknoll.selenium, when: '"selenium" in installed_extras' }
|
||
|
- { role: geerlingguy.solr, when: '"solr" in installed_extras' }
|
||
|
- { role: geerlingguy.elasticsearch, when: '"elasticsearch" in installed_extras' }
|
||
|
- { role: geerlingguy.varnish, when: '"varnish" in installed_extras' }
|
||
|
- { role: drupalvm.www, tags: ['webserver'] }
|
||
|
- { role: geerlingguy.drupal, tags: ['drupal'] }
|
||
|
|
||
|
# Roles for security and stability on production.
|
||
|
- { role: geerlingguy.security, when: extra_security_enabled }
|
||
|
|
||
|
tasks:
|
||
|
- include: tasks/sshd.yml
|
||
|
- include: tasks/extras.yml
|
||
|
|
||
|
- include: tasks/apparmor.yml
|
||
|
when: ansible_os_family == 'Debian' and drupal_db_backend == 'mysql'
|
||
|
tags: ['database']
|
||
|
|
||
|
- include: tasks/drush-aliases.yml
|
||
|
|
||
|
- include: tasks/cron.yml
|
||
|
tags: ['cron']
|
||
|
|
||
|
- include: tasks/dashboard.yml
|
||
|
when: dashboard_install_dir is defined and dashboard_install_dir != ''
|
||
|
tags: ['webserver', 'database', 'php']
|
||
|
|
||
|
- name: Run configured post-provision shell scripts.
|
||
|
script: "{{ item }}"
|
||
|
with_items: "{{ post_provision_scripts|default([]) }}"
|
||
|
|
||
|
- name: Run configured post-provision ansible task files.
|
||
|
include: "{{ outer_item }}"
|
||
|
loop_control:
|
||
|
loop_var: outer_item
|
||
|
with_fileglob: "{{ post_provision_tasks_dir|default(omit) }}"
|