Запуск ruby-приложений с помощью SystemD
Задача №1 — запуск своего веб-приложения с помощью SystemD
Реализуйте запуск вашего веб-приложения с использованием SystemD. Предлагается следующая схема решения задачи:
- Обеспечьте запуск приложения без использования SystemD.
- Установите Ruby-интерпретатор с помощью проекта
ruby-install
. - Обеспечьте возможность выбора интерпретатора с помощью
chruby
. - Запустите Ruby приложение на необходимом вам Ruby-интерпретаторе.
- Обеспечьте раздачу статического веб-контента с помощью веб-сервера Nginx.
- Обеспечьте обратное проксирование запросов динамического содержимого с помощью веб-сервера Nginx.
- Установите Ruby-интерпретатор с помощью проекта
- Реализуйте запуск Ruby-приложения с помощью SystemD.
Для решения второй задачи необходимо обеспечить выполнение приложения rackup
. Самое приложение rackup
— это ruby-приложение, установленное через gem. Для его работы необходимо обеспечить корректное окружение Ruby:
- Должен быть выбран корректный интерпретатор Ruby.
- Должна быть выбрана корректная локация с установленными Gem-файлами. В нашем способе установки они ставятся рядом с интерпретатором, поэтому выполнять этот шаг не нужно.
Самым простым способом является создание Bash-скрипта, который будет настраивать Ruby-окружение и запускать rackup
:
#!/usr/bin/env bash
source /usr/local/share/chruby/chruby.sh
chruby 2.2
rackup --env production
Данный скрипт должен стать точкой запуска вашего приложения. Для его корректной работы в .system
-файле необходимо будет указать:
- Имя пользователя с чьими правами надо запускать приложение.
- Расположение рабочего каталога. В нашем случае - это местоположение приложения.
Не забудьте сделать данный файл исполняемым.
Задача №2 — Установка Ruby-приложения Redmine
- Следуйте официальной инструкции по установке для запуска Redmine.
- Настройте запуск Redmine с помощью SystemD.