У наших западных коллег существует присказка “If You Can’t Measure It, You Can’t Manage It”. Оставляя за рамками данной заметки справедливость этого утверждения, я, тем не менее, не могу не согласиться с тем, что для эффективной работы необходим эффективный инструментарий для отслеживания этой самой работы. Именно поэтому сегодня мы поговорим о том, как воспользоваться одним из таких инструментов - YouTrack, - а конкретнее, как установить его на свой собственный виртуальный сервер на примере дроплета в Digital Ocean.

Почему YouTrack?

История моего знакомства с YouTrack началась с того, что моей жене понадобился инструмент для отслеживания задач, требующих решения в рамках одного из её больших учебных проектов. Иными словами, желательно было иметь свой собственный issue-трекер, с созданием задач, назначением исполнителей, отслеживанием времени, потраченного на задачу и т.п. В результате небольшого исследования альтернатив были найдены три главных потенциальных решения: JIRA, RedMine и YouTrack.

JIRA отпала сразу по причине дороговизны и, надо признать, моей стойкой к ней неприязни. Я имею “удовольствие” пользоваться этой системой на работе. Восторга, достаточного для оплаты $10 в месяц, она у меня не вызывает.

RedMine бесплатен и, кажется, даже open source. Однако по опыту моего использования этого issue-трекера на одной из предыдущих работ, пользоваться RedMine как-то не хочется - выглядит он в стиле “привет из 90-ых”, да и работает местами не очевидно.

Оставался YouTrack. Главными плюсами для нас послужили бесплатность для команды до 10 человек, а также возможность установить на свой собственный сервер. В теории, можно воспользоваться бесплатным тарифом для команды до 10 человек, и создать свой трекер прямо на сайте YouTrack, но в этом случае, он будет публично доступен для всего интернета, его смогут индексировать поисковики, что для нас не подходит совершенно.

И, да, YouTrack - продукт от JetBrains. Если Вы фанат JetBrains, имейте это в виду.

Системные требования

Для установки YouTrack 6.5, о котором мы будем говорить дальше, требуется, в принципе, всего ничего:

  • (Виртуальный) сервер с Ubuntu 14.04+.
  • JRE 1.7+, установленная на этом сервере.

Для меня самым простым способом создать виртуальный сервер является Digital Ocean, который я настоятельно рекомендую за быстроту, простоту и хорошую техподдержку.

В случае Digital Ocean, я рекомендую выбирать дроплет хотя бы с 2 Гб оперативной памяти. В противном случае, придётся танцевать с бубном, как это делал я, когда впервые устанавливал YouTrack. Дело в том, что YouTrack работает на Java, а Java, как известно, очень любит память. Упустив это из виду, я долго пытался понять, почему YouTrack падает в процессе настройки.

Однако, забегая вперёд, могу сказать, что на самом дешёвом $5/мес-дроплете с 512 Мб памяти запустить YouTrack мне всё же удалось, правда, не без ухищрений.

Процесс создания дроплета в Digital Ocean достаточно прост и быстр, далее я сосредоточусь на установке самого YouTrack на созданный дроплет, предполагая, что у читателя уже есть виртуальный сервер, на который он может залогиниться по ssh (в идеале, не с помощью root-пользователя, а другого пользователя с sudo-полномочиями).

Установка YouTrack

0. Создаём в Digital Ocean дроплет с Ubuntu 14.04.
1. Заходим по ssh на наш сервер.
2. Обновляем систему:

sudo apt-get update

4. На сообщение о том, что не установлены языковые пакеты, вводим:

sudo apt-get install language-pack-en

5. Перезагружаем сервер

reboot

6. Ждём несколько секунд (спасибо SSD-дискам Digial Ocean), заходим на сервер по ssh.
7. Устанавливаем unzip, он нам пригодится для распаковки архива YouTrack, который мы загрузим далее.

sudo apt-get install unzip

8. Устанавливаем JRE:

sudo apt-get install openjdk-7-jre

9. Создаём директорию для установки YouTrack:

mkdir /usr/local/youtrack

10. Переходим в созданную директорию:

cd /usr/local/youtrack/

11. Загружаем zip-архив YouTrack с сервера JetBrains (указана версия, актуальная на момент написания заметки):

wget https://download.jetbrains.com/charisma/youtrack-6.5.17057.zip

12. Распаковываем архив:

unzip youtrack-6.5.17057.zip

13. Запускаем процесс установки YouTrack с помощью скрипта youtrack.sh, находящегося в поддиректории bin:

bin/youtrack.sh start --no-browser

Параметр --no-browser используется потому, что мы устанавливаем YouTrack не на локальной машине, а на удалённой. На локальной машине без использования этого параметра установщик запустит окно браузера, в котором необходимо произвести дальнейшие настройки. Поскольку мы залогинены на сервер через ssh вариант с браузером нам не подходит, отсюда и --no-browser. После запуска скрипта Вы увидете вывод в таком духе:

Starting YouTrack...
* Configuring JetBrains YouTrack 6.5
* Made default base-url 'http://services:8080/' from hostname 'services' and listen port '8080'
* JetBrains YouTrack 6.5 runtime environment is successfully configured
* Loading logging configuration from /srv/youtrack/lib/ext/log4j.xml
* Redirecting JetBrains YouTrack 6.5 logging to /srv/youtrack/logs/internal/services/bundleProcess
* Configuring Service-Container[bundleProcess]
* Configuring Configuration Wizard
* Starting Service-Container[bundleProcess]
* Starting Configuration Wizard
* JetBrains YouTrack 6.5 will be available on [http://services:8080] after start
YouTrack is running

В данном случае, services - имя моего сервера. Для доступа к настройке необходимо в любом поддерживаемом браузере ввести http://server-ip:8080, где server-ip необходимо заменить IP адресом Вашего сервера. Для случая установки на локальной машине это будет 127.0.0.1 или localhost.

14. Открыв указанный на предыдущем шаге адрес в браузере, Вы увидете следующую картину: YouTrack Setup Screen 1

15. Нажимаем на Set up, на следующем экране оставляем все настройки по умолчанию: YouTrack Setup Screen 2

16. На экране User Management оставляем включённым Use Built-in Hub, вводим имя и пароль первого админа системы. Учтите, что этот админ засчитывается в те 10 учётных записей, которые можно создать в бесплатной версии системы. YouTrack Setup Screen 3

17. На следующем экране можно ввести информацию о лицензии, в новой установке все поля заполняются автоматически. YouTrack Setup Screen 4

Ограничения лицензии можно посмотреть нажав на License Limitations: YouTrack Setup Screen 5

Как видно из этой картинки, до 2099 года об обновлении лицензии можно не задумываться :)

18. После нажатия на кнопку Finish отобразится экран со статусом запуска системы: YouTrack Setup Screen 6

После настройки всех трёх компонентов на экране отобразится экран входа в YouTrack. Вы можете использовать логин и пароль администратора, заданные на предыдущих шагах.

У меня на минимальном дроплете с 512 Мб оперативной памяти приложение падало на этом этапе, браузер переставал возвращать картинку. Чтобы починить такое поведение, мне пришлось создать swap-файл в моём дроплете (по умолчанию дроплеты Digital Ocean не имеют swap-файла. Это сделано для того, чтобы продлить жизнь SSD-накопителей, на которых работают дроплеты), а также добавить некоторые параметры в файл конфигурации.

Если у Вас всё заработало сразу, без каких-либо падений (что, скорее всего, и будет на любом дроплете с 1-2Гб оперативной памяти), то поздравляю Вас, установка и первичная настройка YouTrack завершена.

Если же Вы использовали дроплет с 512 Мб памяти и у вас всё упало и ничего не отображается, продолжайте читать дальше. По сути, нам необходимо будет сделать 3 вещи:

  • Создать swap-файл.
  • Изменить настройки запуска YouTrack.
  • Перезапусть YouTrack.

Создаём swap-файл в Ubuntu 14.04

Подробно процедура добавления swap-файла описана в блоге Digital Ocean, я приведу минимальный набор действий для его включения.

1. Проверяем, не включен ли уже swap-файл:

sudo swapon -s

Если в результате отображается пустая таблица в следующего вида, это означает, что swap-файл не настроен, читаем и следуем инструкциям дальше:

Filename				Type		Size	Used	Priority

2. Swap-файл обычно рекомендуется создавать в удвоенном размере оперативной памяти, например, для дроплета с 512 Мб оперативной памяти, swap-файл должен быть, как минимум, 512 * 2 = 1024 Мб = 1 Гб. Создаём файл командой:

sudo fallocate -l 1G /swapfile

3. Настраиваем permissions swap-файла:

sudo chmod 600 /swapfile

4. Далее вводим:

sudo mkswap /swapfile

…а затем вводим:

sudo swapon /swapfile

5. Проверить результат создания и настройки swap-файла можно командой:

sudo swapon -s

Теперь вместо пустой таблицы, как на шаге 1, должна отображаться таблица с созданным swap-файлом.

6. Для того, чтобы сделать swap-файл постоянным, чтобы он работал и после перезагрузки системы, добавляем его в fstab:

sudo nano /etc/fstab

В конец файла дописываем:

/swapfile   none    swap    sw    0   0

Сохраняем и закрываем файл. Мы закончили с настройкой swap-файла.

Редактируем параметры запуска YouTrack.

По сути, рекомендации из этого пункта сводятся к решению проблемы нехватки памяти, описанному в FAQ YouTrack. Для более детального описания происходящего рекомендую ознакомиться с инструкцией Задаём стартовые параметры Java на сайте JetBrains.

1. Идём в директорию настроек YouTrack:

cd /usr/local/youtrack/conf

2. Копируем файл youtrack.jvmoptions.dist с именем youtrack.jvmoptions:

cp youtrack.jvmoptions.dist youtrack.jvmoptions

3. Открываем файл youtrack.jvmoptions:

nano youtrack.jvmoptions

…и дописываем в конец этого файла следующие строки:

-Xmx1g
-XX:MaxPermSize=250m
-Xmx1024m
-Djava.awt.headless=true

Сохраняем и закрываем файл. Мы закончили с настройкой параметров запуска YouTrack.

Перезапускаем YouTrack.

1. Переходим в bin директорию:

cd /usr/local/youtrack/bin

2. Запускаем YouTrack:

./youtrack.sh start --no-browser

Далее процесс настройки в браузере аналогичен описанному выше.

Заключение

В результате описанных выше нехитрых процедур мы получили полностью работоспособную инсталляцию issue-трекера YouTrack на собственном виртуальном сервере в Digital Ocean. Пользуясь случаем, настоятельно рекомендую этого провайдера виртуального хостинга.