Задача №1 — запуск своего веб-приложения с помощью SystemD

Реализуйте запуск вашего веб-приложения с использованием SystemD. Предлагается следующая схема решения задачи:

  1. Обеспечьте запуск приложения без использования SystemD.
    1. Установите Ruby-интерпретатор с помощью проекта ruby-install.
    2. Обеспечьте возможность выбора интерпретатора с помощью chruby.
    3. Запустите Ruby приложение на необходимом вам Ruby-интерпретаторе.
    4. Обеспечьте раздачу статического веб-контента с помощью веб-сервера Nginx.
    5. Обеспечьте обратное проксирование запросов динамического содержимого с помощью веб-сервера Nginx.
  2. Реализуйте запуск 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

  1. Следуйте официальной инструкции по установке для запуска Redmine.
  2. Настройте запуск Redmine с помощью SystemD.