Гид по технологиям

Установка и настройка Jira на CentOS 8

4 min read DevOps Обновлено 27 Nov 2025
Установка и настройка Jira на CentOS 8
Установка и настройка Jira на CentOS 8

Кратко: пошаговый гайд по установке Jira Software на CentOS 8. Включены установка Java, развёртывание MySQL 5.7, настройка соединения JDBC, конфигурация Nginx как обратного прокси, правила брандмауэра, рекомендации по SELinux, бекапам и тестам приёмки.

Введение

Jira — это инструмент для гибкого управления проектами от Atlassian. Он используется для трекинга задач, управления проектами и исправления багов. В этом руководстве описаны практические шаги по установке и базовой настройке Jira Software на сервере с CentOS 8.

Кому полезно: системным администраторам, DevOps-инженерам и инженерам по сопровождению, которые разворачивают Jira для команд разработки.

Важно: инструкция ориентирована на Jira версии, совместимые с MySQL 5.7. Перед установкой сверяйтесь с требованиями конкретной версии Jira в официальной документации Atlassian.

Что будет сделано

  • Установка Java OpenJDK 11
  • Установка MySQL 5.7 и создание базы данных для Jira
  • Установка Jira и JDBC-коннектора для MySQL
  • Настройка server.xml (HTTP/proxy)
  • Настройка Nginx как обратного прокси (вариант с и без TLS)
  • Рекомендации по SELinux и брандмауэру
  • Чек-листы, бекапы и тесты приёмки

Требования

  • Сервер с CentOS 8.
  • Доступ root или пользователь с sudo.
  • Доменное имя, указывающее на сервер (напр., jira.example.com) — желательно.

Установка Java

Jira написана на Java. Установим OpenJDK 11:

dnf install java-11-openjdk-devel -y

Проверка версии Java:

java -version
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)

Если на системе уже стоит другая версия JDK, убедитесь, что она совместима с версией Jira, которую вы собираетесь устанавливать.

Установка MySQL 5.7

Примечание: на момент создания исходной инструкции Jira не поддерживала MySQL 8 и MariaDB для некоторых релизов. Здесь показан подход с подключением репозитория MySQL 5.7.

Сбросим/отключим модуль MySQL в AppStream:

dnf remove @mysql
dnf module reset mysql
dnf module disable mysql

Создайте репозиторий MySQL 5.7:

nano /etc/yum.repos.d/mysql-community.repo

Добавьте блоки репозитория (пример):

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0

[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=0

[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=1
gpgcheck=0

Установите MySQL 5.7:

dnf --enablerepo=mysql57-community install mysql-community-server -y

Запустите и включите сервис:

systemctl start mysqld
systemctl enable mysqld

Пароль root временно сгенерирован и записан в лог. Получите его командой:

grep 'A temporary password' /var/log/mysqld.log | tail -1

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

mysql_secure_installation

Следуйте подсказкам: задайте новый root-пароль, удалите анонимных пользователей, запретите удалённый вход для root, удалите тестовую базу.

Важно: сохраняйте надёжный пароль и храните его в менеджере паролей.

Конфигурация MySQL для Jira

Отредактируйте /etc/my.cnf и в секции [mysqld] добавьте рекомендуемые параметры:

default-storage-engine=INNODB
character_set_server=utf8mb4
innodb_default_row_format=DYNAMIC
innodb_large_prefix=ON
innodb_file_format=Barracuda
innodb_log_file_size=2G
sql_mode = NO_AUTO_VALUE_ON_ZERO

Перезапустите MySQL:

systemctl restart mysqld

Создайте базу данных и пользователя для Jira. Используйте надёжный пароль вместо примера:

mysql -u root -p
CREATE DATABASE jiradb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'jira'@'localhost' IDENTIFIED BY 'StrongPasswordHere';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,ALTER,INDEX ON jiradb.* TO 'jira'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Примечание: в продуктивной среде разумно ограничивать доступ к БД по IP и использовать отдельного пользователя для бэкапов.

Важно: никогда не храните пароль в общедоступных скриптах.

Установка и настройка Jira

Скачайте установщик (пример для версии 8.6.0):

wget https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-8.6.0-x64.bin -O atlassian-jira-software.bin
chmod +x atlassian-jira-software.bin
./atlassian-jira-software.bin

Следуйте интерактивным подсказкам установщика. Для быстрого развёртывания выберите “Express Install” (вариант 1) или используйте “Custom Install” для изменённых путей. По умолчанию директории:

  • Installation Directory: /opt/atlassian/jira
  • Home Directory: /var/atlassian/application-data/jira
  • HTTP Port: 8080

После успешной установки запустите Jira или согласитесь запустить её сразу.

Установка JDBC-коннектора MySQL

Скачайте MySQL Connector/J и скопируйте JAR в каталог lib Jira:

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.18.zip
unzip mysql-connector-java-8.0.18.zip
cp mysql-connector-java-8.0.18/mysql-connector-java-8.0.18.jar /opt/atlassian/jira/lib

Перезапустите Jira:

/etc/init.d/jira stop
/etc/init.d/jira start

(На системах с systemd можно управлять сервисом через systemctl, если установлен unit-файл.)

Настройка HTTP-коннектора (server.xml)

Отредактируйте файл /opt/atlassian/jira/conf/server.xml и замените строку Connector, добавив схему и proxy-настройки:

nano /opt/atlassian/jira/conf/server.xml

Пример замены Connector (сохраните кавычки и синтаксис как в файле):

"
           maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false"
           maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443"
           acceptCount="100" disableUploadTimeout="true" bindOnInit="false" scheme="http"
           proxyName="jira.example.com" proxyPort="80"/>

Сохраните изменения и перезапустите Jira.

Настройка Nginx как обратного прокси

Рекомендуется ставить фронтальный веб-сервер (Nginx) для SSL, кэширования, ограничения размера тела запросов и управления потоками.

Установка Nginx:

dnf install nginx -y
systemctl enable --now nginx

Создайте конфигурацию виртуального хоста:

nano /etc/nginx/conf.d/jira.conf

Добавьте:

server {
    listen 80;
    server_name jira.example.com;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://localhost:8080;
        client_max_body_size 50M;
    }
}

Проверьте конфигурацию и перезапустите:

nginx -t
systemctl restart nginx

Рекомендация: HTTPS через Let’s Encrypt

Для защищённого доступа используйте сертификат TLS. Пример с certbot:

dnf install certbot python3-certbot-nginx -y
certbot --nginx -d jira.example.com

Certbot автоматически настроит HTTPS и перенаправление с HTTP.

SELinux и брандмауэр

Откройте HTTP(S) в брандмауэре:

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Важно по безопасности:

  • Не рекомендуется полностью отключать SELinux в продуктиве. Лучше перевести в permissive для тестирования, а затем настроить правильные политики.
  • Альтернатива: если SELinux блокирует работу, получите сообщения в /var/log/audit/audit.log и создайте необходимое правило с помощью audit2allow.

Чтобы временно перевести SELinux в permissive (для отладки):

setenforce 0

Чтобы изменить конфиг на постоянный permissive:

nano /etc/selinux/config
# SELINUX=permissive

Лучше: анализируйте AVC-сообщения и создавайте минимальные политики.

Доступ к панели Jira

Откройте браузер и перейдите по адресу http://jira.example.com (или https://jira.example.com если включён TLS).

Из интерфейса установщика выберите вариант “I’ll set it up myself” (будет показано как “я настрою сам”) и далее — “My Own Database”. Укажите данные базы:

  • JDBC URL: jdbc:mysql://localhost:3306/jiradb?useUnicode=true&characterEncoding=utf8
  • Пользователь: jira
  • Пароль: (ваш пароль)

Далее задайте название приложения, URL, введите лицензионный ключ, создайте администратора и укажите настройки уведомлений по почте.

Изображение установщика Jira

Jira Installer

Database setup

Application properties

License key

Administrator account

Email notifications

Choose language

Jira account

Jira Dashboard

Create a project in Jira

Scrum Software Development

Project name and key

Jira project dashboard

Частые проблемы и их решения

  • Проблема подключения к MySQL: «Authentication plugin» или ошибки плагинов — используйте совместимый JDBC-коннектор для вашей версии MySQL и убедитесь, что пользователь и база созданы.
  • Ошибки при старте Jira: смотрите логи в /opt/atlassian/jira/logs/atlassian-jira.log и /opt/atlassian/jira/logs/catalina.out.
  • Порт 8080 занят: либо измените порт в server.xml, либо остановите конфликтующий сервис.
  • Ошибки прав доступа к файловой системе: проверьте владельца и права для каталога JIRA_HOME (/var/atlassian/application-data/jira).

Резервное копирование и восстановление — мини-плейбук

Регулярный бекап состоит из двух частей: резерв базы данных и резерв каталога данных Jira (JIRA_HOME).

Бекап БД (пример mysqldump):

mysqldump -u root -p --single-transaction --routines --events jiradb > /backup/jiradb-$(date +%F).sql

Бекап файлов Jira:

tar -czf /backup/jira-home-$(date +%F).tar.gz /var/atlassian/application-data/jira

Восстановление: восстановить дамп БД, затем распаковать JIRA_HOME и проверить права, затем запустить сервис Jira и выполнить проверку целостности через UI.

Критерии приёмки

  • Jira доступна по URL и отвечает на главной странице.
  • Админ-панель открывается, можно создать проект.
  • Подключение к базе данных успешно (нет ошибок в логах).
  • HTTPS (если включён) работает без ошибок сертификата.

Чек-листы по ролям

Системный администратор / DevOps:

  • Проверить пакеты Java и версию OS.
  • Установить и настроить MySQL.
  • Развернуть Jira и Nginx, настроить TLS.
  • Настроить бекап и мониторинг сервисов.

DBA:

  • Создать базу и пользователя для Jira с минимальными правами.
  • Настроить бекапы и тестовое восстановление.
  • Мониторить размер ib_logfile и производительность InnoDB.

Jira-администратор:

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

Тесты приёмки

  1. HTTP(S) доступность: curl -k https://jira.example.com/ -> HTTP 200.
  2. Вход в админку: логин под администратором.
  3. Подключение к БД: попытка создания тестовой задачи.
  4. Бекап и восстановление на тестовом сервере.

Альтернативные подходы и когда это не подходит

  • Если вы хотите минимизировать ручные шаги, используйте контейнеризацию (Docker) или готовые образы. Для больших организаций предпочтительны HA-решения и кластерные БД.
  • Для новых инсталляций рассмотрите использование PostgreSQL — она официально поддерживается и часто рекомендована для Jira.
  • Если ваша версия Jira поддерживает MySQL 8, лучше обновиться до официально поддерживаемых комбинаций вместо установки старого MySQL.

Краткая модель принятия решений

  • Нужен быстрый PoC → Express install, локальная БД.
  • Продакшн для команды → отдельный БД-сервер, TLS, автоматические бекапы, мониторинг.
  • Высокая доступность → отказ от локального MySQL, HA-DB и распределение нагрузки через балансировщик.
flowchart TD
  A[Начать установку] --> B{Требуется БД?}
  B -- Да --> C[Установить MySQL/Postgres]
  B -- Нет --> D[Использовать встроенный H2 'только тест']
  C --> E{Версия БД совместима?}
  E -- Да --> F[Установить Jira]
  E -- Нет --> G[Выбрать другую версию БД или Jira]
  F --> H[Настроить Nginx и TLS]
  H --> I[Проверка и бекап]

Безопасность

  • Всегда включайте HTTPS в продуктиве.
  • Ограничьте доступ к базе данных по IP.
  • Регулярно обновляйте JVM и зависимости сервера.
  • Минимизируйте права ОС для пользователя, под которым работает Jira.

Совместимость и миграции

  • Перед миграцией проектов проверьте поддержку версий Jira и СУБД в документации Atlassian.
  • Тестируйте процесс миграции на копии продакшн-данных.

Заключение

Поздравляю — вы установили и настроили Jira на CentOS 8. В этом руководстве описаны ключевые шаги: установка Java, развёртывание MySQL 5.7, интеграция JDBC, настройка обратного прокси через Nginx, рекомендации по SELinux, бэкапам и тестам приёмки.

Важно: перед вводом в продуктив выполните тестовое восстановление бекапа и настройте мониторинг. Если нужно, помогу с отладкой логов, настройкой TLS или автоматизацией развертывания.

Краткая сводка:

  • Jira должна быть доступна по указанному домену.
  • База данных должна быть настроена с utf8mb4.
  • Настройте регулярные бекапы и тесты восстановления.

Еще вопросы? Опишите проблему или пришлите фрагмент лога — помогу диагностировать.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро