Разворот окружения с помощью готовых сборок Vagrant

окружение с использованием сборок Vagrant

Сегодня рассмотрим разные варианты запуска локального энвайромента с помощью готовых сборок, т.е. непосредственно перейдем к автоматизации процесса настройки окружения.
Прежде чем запускать готовую сборку, внимательно ознакомьтесь с конфигурационными файлами каждой из них, т. к. в большинстве случаев изменения касаются не только софта, который будет установлен, но и непосредственно конфигурации самой виртуальной машины (инсталляция 64-разрядной ubuntu, количество задействованных процессоров, оперативная память, тип и размер жесткого диска и т. д.). Необходимо корректировать конфиги сборок в случае, если ваша виртуалка что либо не поддерживает. Это поможет избежать множества проблем и ошибок при установке/запуске машины.

Содержание

Использование puphpet

Проект puphpet[1] (ссылка на гитхаб[2]) позволяет быстро “набросать” конфиг для вагранта, получить скрипты для установки и конфигурации софта: веб-сервера, клиента базы данных, поискового клиента и т.д.
puphpet
На сайте будет предложено пройти по пунктам конфигурации (Deploy Target, System, Web Servers и т.д.), выбрать, что необходимо поставить и указать требуемые параметры. Пользоваться конфигуратором просто и удобно. На заключительном этапе будет предложено скачать архив с настройками. Далее этот архив распаковываем в нужную папку, запускаем командную строку, переходим в директорию и выполняем команду

1
vagrant up

Сборка drupalvm

Drupal Virtual Machine (drupalvm) можно скачать как с официального сайта[3] так и с репозитория на гитхабе[4].
drupalvm официальный сайт
Сборка позиционируется как специально созданная для быстрого разворота окружения под Drupal и по умолчанию содержит в себе следующее:

  • Ubuntu 16.04 (64-bit)
  • Apache 2.4.x (можно выбрать Nginx 1.x)
  • PHP 7.0.x (настраивается, доступна версия 5.6)
  • MySQL 5.7.x - можно выбрать MariaDB
  • Drush (настраивается)
  • Drupal 7.x, или 8.x.x (настраивается)
  • Опционально (устанавливается по умолчанию):
  • — Drupal Console
  • — Varnish
  • — Apache Solr
  • — Node.js
  • — Selenium (для тестирования сайтов через Behat)
  • — Ruby
  • — Memcached
  • — Redis
  • — SQLite
  • — XHProf (для профилирования кода)
  • — Blackfire (для профилирования кода)
  • — XDebug (для дебага кода)
  • — Adminer (доступ к напрямую к базе данных)
  • — Pimp my Log (для легкого просмотра файлов логов)
  • — MailHog (для перехвата тестовой почты)

drupalvm github
После скачки архива и его распаковки, необходимо скопировать и переименовать два конфигурационных файла:

  1. example.drupal.make.yml в drupal.make.yml
  2. example.config.yml в config.yml

Внося изменения в config.yml, можно корректировать перечень утилит, которые будет установлены. В config.yml в разделе installed_extras можно включить/выключить дополнительные программы, которые необходимо инсталлировать на виртуалку.
В файле drupal.make.yml по умолчанию к установке указан Drupal 8 и контрибный модуль devel, здесь же можно указать дополнительные модули. Если вы меняете версию друпала в drupal.make.yml, то обязательно измените ее и в параметре drupal_major_version в config.yml. В config.yml параметр drupal_enable_modules управляет какие скачанные модули будут включены.
Далее порядок действий точно такой же как в пункте с puphpet.
install drupalvm
После установки в UI окне виртуалбокса появится виртуальная машина drupalvm.dev и packer-ubuntu-16.04-amd64-disk1.vmdk. Через vagrant up будет запускаться всегда drupalvm.dev, поэтому вторую виртуалку можно просто скрыть из списка.
drupalvm in virtualbox ui
По умолчанию ip-address виртуальной машины — 192.168.88.88, не забываем прописать его в hosts.

1
192.168.88.88 drupalvm.dev

Использование druphpet

Проект Druphpet также расположен на гитхабе[5] и сфокусирован на быстром развороте локального окружения для Drupal. Сборка основана на puphpet. В отличие от drupalvm имеет довольно большой список инструментов из коробки, которые разработчик может выбрать перед установкой.
druphpet
Конфигурационный файл расположен по пути puphpet/config.yaml. Небольшой список того, что входит в сборку:

  • Ubuntu 64-bit Precise 14.04
  • Drush 7.x
  • Apache 2.4.x
  • PHP 5.6.x with extensions:
  • — (debugger, pecl) XDebug
  • — (profiler, tool, pecl) XHProf
  • — (pecl) SOAP
  • — (pecl) Uploadprogress
  • — (pecl) APCu
  • — (pecl) Memcached
  • — (tool, PEAR) PHP_CodeSniffer
  • — (PEAR) PHP_Console_Table
  • Apache Solr 4.x
  • OPCacheGUI
  • PHPMemcacheAdmin
  • MySQL 5.6.x
  • dos2unix
  • Percona Toolkit
  • phpMyAdmin
  • . . .

С полным списком инструментов можно ознакомиться на странице проекта[5].

Использование vdd

VDD или Vagrant Drupal Development — контрибный модуль[6], представляющий собой архив с конфигами для Vagrant. Работает (из утверждений на официальной странице) с Drupal 6,7,8, но ссылка на странице приведена только для друпала 8. Для просмотра всех релизов нажмите на ссылку View all releases или по ссылке[7]. Имеет в своем наборе небольшой список инструментов, но вполне достаточный для работы, а именно:

  • Apache, PHP, MySQL
  • PhpMyAdmin
  • Drush
  • Xdebug, Webgrind
  • Mailcatcher

vdd7/vdd8

Итог

Сборки, перечисленные в статье — лишь малая часть того, что существует. Естественно, не каждую сборку удастся поставить без каких-либо проблем, но большинство "граблей" уже описано. Тем не менее, их можно использовать прямо сейчас, сильно не углубляясь во все внутренности скриптов.

Дополнительная информация по статье

  1. https://puphpet.com - официальная страница проекта puphpet
  2. https://github.com/puphpet/puphpet - официальная страница проекта puphpet на github.com
  3. http://www.drupalvm.com - официальная страница проекта drupalvm
  4. https://github.com/geerlingguy/drupal-vm - страница проекта drupalvm на гитхабе
  5. https://github.com/alehkot/druphpet - официальная страница проекта druphpet
  6. https://www.drupal.org/project/vdd - официальная страница проекта vdd
  7. https://www.drupal.org/node/2008018/release - страница всех релизов проекта vdd
  8. Версии программных продуктов, используемых в статье: Vagrant 1.8.1, VirtualBox 5.0.10