Сегодня я напишу о нашем проекте, позволяющем автоматизировать настройку веб-серверов для 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