Установка JIRA на Ubuntu 20.04

Уже несколько раз я сталкивался с необходимостью в настройке тестового стенда с JIRA. Собственно, это и сподвигло меня на написание опорной статьи, которую я (или вы) в последующем можете использоваться для развертывания тестового стенда с JIRA. Установка JIRA будет выполняться на Ubuntu 20.04 – серверная версия или версия с графическим интерфейсом значения не имеет. В статье будут указаны параметры настройка сервера баз данных – вы можете использовать любой вариант СУБД на выбор – MySQL или же PostgreSQL.

Хочу обратить внимание, что в статье описаны шаги для настройки тестового стенда. Для развертывания JIRA в боевой среде рекомендую внимательно ознакомиться с документацией.

Установка JIRA будет выполнена с использованием ознакомительной версии, которая позволит вам оценить продукт в течении 30 дней.

Подготовка операционной системы

Мы не будет рассматривать процесс остановки операционной системы, т.к. есть огромное количество соответствующего материала на просторах Интернета. Мы только рассмотрим шаги, которые необходимо выполнить сразу после установки операционной системы.

А именно:

1. Актуализируем репозитории.

sudo apt update

2. Выполним обновление текущих пакетов:

sudo apt upgrade

Подтверждаем наше согласие на обновление пакетов:

Дожидаемся окончания процесса обновления пакетов.

Установка предварительных компонентов

Для работы JIRA необходима JAVA, т.к. именно на этом языке программирования написана JIRA.

Перечень поддерживаемых версий JAVA приведен в документации.

На момент написания статьи для текущий версии JIRA (8.21) поддерживались следующие версии:

  • JAVA 8.
  • JAVA 11.

Установщик последнюю версию JAVA:

sudo apt install default-jdk

Даем согласие на установку компонентов.

Проверим установленную версию JAVA:

java -version

Была установлена 11-я версия JAVA, которая официально поддерживается вендором, т.е. по части установки JAVA мы все выполнили корректно.

Установка и настройка сервера баз данных

В качестве сервера баз данных может быть использован MS SQL, Oracle, MySQL или PostgreSQL. С перечнем поддерживаемых СУБД можно ознакомиться в официальной документации.

Мы же рассмотрим использование MySQL и PostgreSQL, как наиболее распространенных СУБД для Linux систем. Судя по обсуждениям в Atlassian Community при наличии выбора рекомендуется именно PostgreSQL. Однако, на соответствующей странице документации аргументов в преимуществе MySQL или PostgreSQL я не нашел.

По части установки СУБД принципиальных отличий тоже нет. Разве что для MySQL нужно будет отдельно загрузить соответствующий драйвер для подключения и положить его в папку с бинарными файлами JIRA. Но об этом будет написано ниже.

Для тестового развертывания вы можете использовать любой из серверов баз данных ниже – либо MySQL, либо PostgreSQL.

Отмечу важный момент – сервер приложений и сервер баз данных у нас будет установлен на одном и том же сервере, т.е. мы не будем рассматривать настройку внешнего доступа к серверу баз данных.

Пример установки и настройки MySQL

Первым шагом устанавливаем непосредственно сервер:

sudo apt install mysql-server

Даем согласие на установку сервера MySQL и дожидаемся окончания процесса установки.

Проверим версию MySQL:

sudo mysql --version

Версия MySQL 8.0 поддерживается вендором, т.е. по части выбора версии СУБД мы нигде не ошиблись.

Далее необходимо включить автоматический запуск сервиса MySQL при старте операционной системы:

sudo systemctl enable mysql

Установим пароль для пользователя root сервера баз данных:

sudo mysqladmin -u root password

Теперь нам необходимо подключиться к серверу баз данных и создать пустую базу данных.

Подключаемся к серверу. При подключении указываем пароль, который мы установили на предыдущем шаге:

sudo mysql -uroot -p

Выполнять настройку сервера MySQL 8 мы будет в соответствии с официальной документацией.

Итак, в консоли mysql выполним команду для создания пользователя, от имени которого JIRA будет подключаться к СУБД:

CREATE USER 'jirauser' IDENTIFIED BY 'Qwerty123';

Создадим пустую базу данных:

CREATE DATABASE jiradb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

Обратите внимание на параметры сортировки базы данных – это очень важный момент, т.к. начиная с версии JIRA 8.12 обязательно нужно использовать utf8mb4.

Выдадим необходимы разрешения пользователю mysql (в нашем случае jirauser) для подключения и работы с базой данных jiradb:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,ALTER,INDEX on jiradb.* TO 'jirauser'@'%';
flush privileges;

Завершаем работу с консолью mysql:

\q

Далее необходимо отредактировать конфигурационный файл сервера MySQL:

sudo nano /etc/mysql/conf.d/mysql.cnf 

Добавил следующие параметры в секцию [mysql]:

default-storage-engine=INNOD
character_set_server=utf8mb4
innodb_default_row_format=DYNAMIC
innodb_log_file_size=2G
sql_mode = NO_AUTO_VALUE_ON_ZERO

Сохраняем внесенные изменения и перезапускаем сервер mysql:

sudo systemctl restart mysql

Настройка сервера баз данных завершена.

Пример установки и настройки PostgreSQL

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

Устанавливаем сервер PostgreSQL:

sudo apt install postgresql

Подтверждаем установку необходимым компонентов и дожидаемся окончания установки.

Проверяем установленную версию PostgreSQL:

sudo pg_config --version

Поддержка PostgreSQL 12 заявлена. Проблем с версией у нас не будет.

Настроим автоматический запуск службы PostgreSQL:

sudo systemctl enable postgresql

Подключимся к консоли psql:

sudo -u postgres psql

Создадим отдельного пользователя, от имени которого JIRA будет подключаться к серверу баз данных:

CREATE USER jirauser WITH PASSWORD 'Qwerty123';

Создадим пустую базу данных:

CREATE DATABASE jiradb WITH ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0;

Выдадим все необходимые разрешения созданному пользователю для базы данных:

GRANT ALL PRIVILEGES ON DATABASE jiradb TO jirauser;

Выходим из консоли pgsql:

\q

Настройка сервера баз данных завершена.

Установка и первоначальная настройка JIRA

Хочу обратить внимание, что версия JIRA для локального развертывания в скором времени не будет поддерживаться. Более подробную информацию можно найти вот по этой ссылке.

Самым первым шагом нам необходимо загрузить дистрибутив по этой ссылке.

Выбираем вариант загрузки в виде архива:

Ждем окончание загрузки дистрибутива.

Либо можно загрузить дистрибутив через wget, если вам не охота запускать браузер 🙂

sudo wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.21.0.tar.gz

Теперь необходимо создать две директории:

sudo mkdir /opt/jira /opt/jira-home

В каталоге /opt/jira будут находиться бинарные файлы приложения.

Каталог /opt/jira-home предназначен для хранения конфигурационных файлов, журналов, вложений и другой сопутствующей информации.

Теперь нам необходимо разархивировать загруженный архив в директорию /opt/jira:

sudo tar zxf atlassian-jira-software-8.21.0.tar.gz -C /opt/jira --strip-components 1

Если в качестве СУБД вы используете MySQL, то дополнительно вам необходимо загрузить драйвер JDBC.

Аналогичная операция через wget:

sudo wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.27.tar.gz

Распакуем архив:

sudo tar zxf mysql-connector-java-8.0.27.tar.gz

Скопируем драйвер в директорию с бинарными файлами JIRA:

sudo cp mysql-connector-java-8.0.27/mysql-connector-java-8.0.27.jar /opt/jira/lib

Повторюсь, что все операции с драйвером JDBC необходимо выполнять ТОЛЬКО если вы используете MySQL в качестве СУБД. Для PostgreSQL необходимый драйвер уже есть в дистрибутиве JIRA.

Далее необходимо в параметрах окружения JIRA указать расположение директорий:

sudo nano /opt/jira/bin/setenv.sh

Укажем домашние каталоги JIRA и JAVA:

export JIRA_HOME=/opt/jira-home
export JAVA_HOME=/usr/lib/jvm/default-java

Сохраним внесенные изменения.

Теперь мы можем запустить JIRA для первоначальной настройки:

sudo /opt/jira/bin/start-jira.sh

В случае успешного запуска мы должны увидеть подобный вывод на консоль:

Теперь мы можем приступить к первоначальной настройке перейдя по следующему пути в браузере:

http://localhost:8080/

На первой странице мастера настройки выберем пункт “I’ll set it up myself”:

Теперь нам необходимо указать параметры подключения к БД.

Параметры подключения к серверу баз данных MySQL:

Параметры подключения к серверу баз данных PostgreSQL:

Нажимает кнопку “Next” и ждем пока мастер установки создаст необходимую структуру базы данных.

Далее указываем необходимые параметры развертывания JIRA и нажимаем кнопку “Next”:

Следующим шагом необходимо получить триальную лицензию:

Для этого необходимо войти под вашей учетной записью Atlassian, либо создать учетную запись при её отсутствии:

Указываем параметры триальной лицензии:

После получения лицензионного ключа нажимаем кнопку “Next”.

Теперь необходимо создать первого пользователя системы:

Пока мы не будем выполнять настройку почтовых уведомлений:

Нажимаем кнопку “Finish”.

Теперь необходимо выбрать используемый язык:

Пропустим шаг с установкой аватара:

Создадим наш первый тестовый проект:

Для примера выберем тип проекта “Scrum”:

И подтвердим наши намерения:

Вот теперь установка и настройка JIRA завершена, и мы можем увидеть результаты нашего труда:

Настройка запуска в качестве службы

В целом наше развертывание работоспособно, но у него есть один недостаток – JIRA каждый раз нужно запускать вручную. Для того, чтобы запуск JIRA выполнялся при старте системы необходимо зарегистрировать службу. Займемся этим.

Создадим отдельного пользователя:

sudo useradd --create-home -c "JIRA role account" jira

Изменим владельца директории с бинарными файлами и домашним каталогом JIRA:

sudo chown -R jira: /opt/jira
sudo chown -R jira: /opt/jira-home

Создадим unit файлы для сервиса:

sudo touch /lib/systemd/system/jira.service
sudo chmod 664 /lib/systemd/system/jira.service

Откроем на редактирование созданный для сервиса файл:

sudo nano /lib/systemd/system/jira.service

Структура нашего файла будет следующая:

[Unit]
Description=Atlassian Jira
After=network.target

[Service]
Type=forking
User=jira
LimitNOFILE=20000
PIDFile=/opt/jira/work/catalina.pid
ExecStart=/opt/jira/bin/start-jira.sh
ExecStop=/opt/jira/bin/stop-jira.sh

[Install]
WantedBy=multi-user.target

Сохраняем изменения. Если вы создали другого пользователя или установили JIRA в другой каталог, то внести соответствующие изменения.

Перезагрузим информация о доступных сервисах:

sudo systemctl daemon-reload

Включим автозапуск нашего сервиса при старте операционной системы:

sudo systemctl enable jira.service

Теперь попробуем запустить наш сервис:

sudo systemctl start jira.service

Проверим статус нашего сервиса:

sudo systemctl status jira.service

Как видно из скриншота сервис запустился корректно, а это значит, что мы все выполнили верно, что не может не радовать 🙂

Заключение

В этой публикации мы рассмотрели пример развертывания JIRA для тестового стенда. Повторюсь еще раз – подобное развертывание не пригодно для боевой среды.

Пример развертывания JIRA был показан для двух наиболее распространенных СУБД Linux систем – MySQL и PostgreSQL.

В дополнении мы рассмотрели те шаги, которые необходимо выполнить для настройки сервиса JIRA, чтобы он автоматически запускался при каждом старте операционной системы.

Добавить комментарий

Ваш адрес email не будет опубликован.