Сегодня я напишу о нашем проекте, позволяющем автоматизировать настройку веб-серверов для Drupal проектов.
В нашей компании мы достаточно часто выполняем настройку веб-сервера для Drupal проекта, поэтому со временем мы автоматизировали эту операцию и стали использовать систему управления конфигурациями Ansible для первоначальной настройки и дальнейшей поддержки серверов.
Преимущества Ansible для нас:
- автоматизированная настройка серверов, позволяет экономить время на ручных операциях установки и настройки программного обеспечения
 - типовая настройка программного обеспечения, позволяет экономить время на внесение изменений
 - наличие конфигурации ansible упрощает процесс документирования серверов на поддержке
 
Но Ansible это всё же инструмент для системных администраторов нежели для разработчика.
Мы решили устранить этот недостаток и выложили в открытый доступ проект Drupal Server Environment ( DrupalSE ), позволяющий быстро настроить сервер для Drupal сайта.
Описание проекта
DrupalSE позволяет быстро настраивать программное обеспечения, необходимое для работы Drupal сайтов
Устанавливаемое программное обеспечение:
- Nginx
 - Php-fpm7.0
 - Mysql
 - Drush
 - Composer
 - Ntp - синхронизация времени.
 - Ferm - файрвол.
 - Exim - почтовый сервер.
 
Основные возможности DrupalSE :
- автоматизированная настройка серверного окружения для Drupal сайта;
 - быстрое добавление / удаление сайтов;
 - оптимизация настроек программного обеспечения с учетом доступных ресурсов сервера.
 
Инструкция по установке DrupalSE на сервер
Скачиваем скрипт и запускаем его:
wget https://s3-eu-west-1.amazonaws.com/drupalse/drupalSE.sh sh drupalSE.sh
Вводим пароль для пользователя webmaster. Этот пользователь будет использоваться для работы с сайтом по SFTP.
Выбираем пункт “1. Configure new server” для конфигурирования и вводим имя сервера.
После этого начнется установка программного обеспечения и автоматически запустится скрипт для добавления сайтов на сервер.
Управление сайтами
Добавление сайта
- Меню запускается автоматически при подключении по ssh или из домашней директории пользователя root:
sh drupalSE_menu.sh
 - Выбрать пункт “2. Manage sites on the server”.
 - Выбрать пункт “1. Create site”.
 - Ввести доменное имя для сайта.
 - Ввести название необходимой кодировки БД.
 - Нажимаем Enter и на экран будет выведена информация:
- путь к директории сайта;
- имя и пароль пользователя Базы Данных;
- название базы данных.
Необходимо сохранить эту информацию для дальнейшего размещения сайта. - “0. Exit” для выхода
 - Скачиваем drupal в директорию сайта, делаем установки или разворачиваем дамп базы данных и начинаем работу.
 
Удаление сайта
- Меню запускается автоматически при подключении по ssh или из домашней директории root:
sh drupalSE_menu.sh
 - Выбрать пункт “2. Manage sites on the server”.
 - Выбрать пункт “2. Delete site”.
 - Ввести путь к сайту /home/webmaster/domains/$site_name
 - Нажимаем Enter и “0. Exit” для выхода.
 
Надеюсь проект будет полезен Drupal сообществу. Рад буду услышать комментарии и предложения по развитию этого проекта.
Добрый день, это конфигурация для Drupal 8?
А она подходит для 7-й версии?
А с модулем Domain access нормально работает?
И можно ли дополнительно установить Vestaсp?
П.С. хотел дать на нее ссылку начинающему админу, чтобы попробовал установить мне на сервер. Вдруг он сам не разберется..
А на каком релизе Debian 8 тестировались скрипты на работоспособность?
Какой именно дистрибутив?
Пробовал на Debian 8_4 установленного из готового образа от провайдера хостинга,
встало криво, первый этап меню 1. Configure new server
зациклен по кругу, после конфигурации сервера пишет успешно а потом опять предлагает этот пункт, конфигурационные файлы не сохранились в нужные директории, php-fpm не установился.
Прошу прощения что поздно ответчаю.
На github ответили:
Здравствуйте!
На нашем тестовом окружении повторить проблему не удалось.
Тестировали на Debian 8.5
Уточните, пожалуйста, после выполнения действия "1. Configure new server" создался ли файл /etc/ansible/vars/drupal-hosts.yml ?
Да, действительно ошибку исправили Wheezy на Jessie