bmeme.drupal
Ansible Роль: Drupal
Создание, установка и сборка проекта Drupal.
Это первая опубликованная Ansible роль, разработанная Bmeme, которая на самом деле используется в нашем процессе разработки Drupal. Она была вдохновлена другими ролями, которые мы обычно используем и которые действительно хороши:
Требования
Для корректного использования этой роли вам нужен классический стек LAMP/LEMP:
- стандартный веб-сервер (рекомендуется Apache или Nginx)
- база данных MySQL/PostgreSQL
- интерпретатор PHP (7.x или новее)
- Composer (рекомендуется
geerlingguy.composer
)
Drush является необходимой зависимостью, которую эта роль предоставит в вашем проекте Drupal.
Зависимости
- коллекция
community.mysql
- коллекция
community.general
Установка
Это роль Ansible, распространяемая через Ansible Galaxy. Чтобы установить эту роль, вы можете использовать следующую команду.
$ ansible-galaxy install bmeme.drupal
Обновление
Если вы хотите обновить роль, вам нужно использовать параметр --force при установке. Пожалуйста, проверьте следующую команду:
$ ansible-galaxy install --force bmeme.drupal
Предварительная версия
У этой роли есть предварительная версия (называемая 0.5-beta1), которая использует другой рабочий процесс и другую схему переменных. Эта версия полностью устарела и используется в Bmeme только для обратной совместимости, не используйте ее!
Переменные роли
Доступные переменные:
Имя переменной | Описание | Значение по умолчанию |
---|---|---|
drupal_project_dir |
Абсолютный путь, в который должен быть установлен проект Drupal | /var/www/html |
drupal_project_owner |
Системный пользователь, который является владельцем проекта | www-data |
drupal_project_group |
Системная группа, которая является владельцем проекта | www-data |
drupal_project_composer_project |
Проект-композитор Drupal, который вы хотите использовать для свежей установки | drupal/recommended-project |
drupal_project_web_root |
Директория, в которой хранится ядро Drupal. Может зависеть от дистрибутива Drupal. | web |
drupal_site_name |
Имя сайта Drupal. Используется Drush во время установки Drupal. | Ваш новый экземпляр Drupal |
drupal_site_mail |
Почта сайта Drupal. Используется Drush во время установки Drupal. | [email protected] |
drupal_site_lang |
Язык по умолчанию сайта Drupal. Используется Drush во время установки Drupal. | en |
drupal_account_mail |
Почта учетной записи Drupal. Используется Drush во время установки Drupal. | такая же, как drupal_site_mail |
drupal_account_name |
Имя учетной записи Drupal. Используется Drush во время установки Drupal. | admin |
drupal_account_pass |
Пароль учетной записи Drupal. Используется Drush во время установки Drupal. | admin |
drupal_db_schema |
Схема базы данных для использования Drupal. Доступные варианты: mysql или pgsql |
mysql |
drupal_db_name |
Имя базы данных. Используется Drush во время установки Drupal. | drupal |
drupal_db_user |
Пользователь базы данных. Используется Drush во время установки Drupal. | drupal |
drupal_db_pass |
Пароль пользователя базы данных. Используется Drush во время установки Drupal. | drupal |
drupal_db_host |
Адрес хоста базы данных. Используется Drush во время установки Drupal. | 127.0.0.1 |
drupal_db_port |
Порт хоста базы данных. Используется Drush во время установки Drupal. | 3306 |
drupal_profile |
Профиль установки Drupal. Смотрите этот баг | minimal |
drupal_composer_nodev |
Опция "nodev" для Composer. Булевый | false |
drupal_composer_prefer_dist |
Опция "prefer-dist" для Composer. Булевый | false |
drupal_composer_scaffold_nonamespace |
Использовать Composer без пространства имен для установки Drupal Scaffold. Булевый | false |
Рабочий процесс
Эта роль выполняет три основные задачи:
- создание: Создает новый проект Drupal с помощью Composer: вы можете настроить проект Composer, используя переменную
drupal_project_composer_project
. Данная роль автоматически распознает, когда проект Drupal уже существует, и пропускает этот набор задач. - установка: Устанавливает экземпляр Drupal с помощью Drush. В конце процесса настройки Drupal автоматически экспортируются в директорию
{{ drupal_project_dir }}/config/sync
. Эта роль автоматически распознает, когда установка Drupal уже существует, и пропускает этот набор задач. - сборка: Собирает экземпляр Drupal через Drush, устанавливая из существующих экспортированных конфигураций. Она автоматически распознает конфигурации и выполняет набор задач по сборке.
Начав с нуля, она выполняет только задачи создания и установки.
Хуки
Вы можете добавить свои собственные задачи, используя доступные хуки:
drupal_before_create
: выполняется перед набором задач создания. Если проект Drupal уже присутствует, этот хук будет пропущен.drupal_after_create
: выполняется после набора задач создания. Если проект Drupal уже присутствует, этот хук будет пропущен.drupal_before_install
: выполняется перед набором задач установки. Если конфигурации Drupal уже доступны, этот хук будет пропущен.drupal_after_install
: выполняется после набора задач установки. Если конфигурации Drupal уже доступны, этот хук будет пропущен.drupal_before_build
: выполняется перед набором задач сборки. Если конфигурации Drupal недоступны, этот хук будет пропущен.drupal_after_build
: выполняется после набора задач сборки. Если конфигурации Drupal недоступны, этот хук будет пропущен.
Способ работы Bmeme
Bmeme использует эту роль для автоматизации операций создания / установки / сборки проекта Drupal в процессе его разработки.
Мы используем Docker в качестве среды разработки как локально, так и на удаленных тестовых экземплярах.
Роль выполняется внутри наших docker-образов php
, доступных здесь.
Одни и те же образы также используются для тестирования роли molecule.
Зависимости
Нет
Пример Playbook
- hosts: webserver
vars_files:
- vars/main.yml
roles:
- geerlingguy.apache
- geerlingguy.mysql
- geerlingguy.php-versions
- geerlingguy.php
- geerlingguy.php-mysql
- geerlingguy.composer
- bmeme.drupal
Внутри vars/main.yml
drupal_project_dir: /path/to/my/project
drupal_site_name: Мой потрясающий сайт на Drupal
drupal_after_build: "tasks/my-after-build-tasks.yml"
Если вы хотите использовать эту роль для установки конкретного дистрибутива Drupal (например: Lightning):
- hosts: webserver
vars_files:
- vars/main.yml
roles:
- geerlingguy.apache
- geerlingguy.mysql
- geerlingguy.php-versions
- geerlingguy.php
- geerlingguy.php-mysql
- geerlingguy.composer
- bmeme.drupal
drupal_project_composer_project: "acquia/lightning-project:8.8.1"
Лицензия
MIT/BSD
Информация об авторе
Эта роль была создана в 2020 году Bmeme.
Creates a Drupal project via composer, install it and re-build it by configs
ansible-galaxy install bmeme.drupal