bmeme.drupal

Рабочий процесс Поддержка Лицензия MIT

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
Лицензия
mit
Загрузки
66.2k
Владелец
Digital Factory