Установка и настройка 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.comCertbot автоматически настроит 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, введите лицензионный ключ, создайте администратора и укажите настройки уведомлений по почте.














Частые проблемы и их решения
- Проблема подключения к 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-администратор:
- Ввести лицензию, создать аккаунт администратора.
- Настроить почтовые уведомления и внешние интеграции.
- Создать первый проект и проверить рабочий процесс.
Тесты приёмки
- HTTP(S) доступность: curl -k https://jira.example.com/ -> HTTP 200.
- Вход в админку: логин под администратором.
- Подключение к БД: попытка создания тестовой задачи.
- Бекап и восстановление на тестовом сервере.
Альтернативные подходы и когда это не подходит
- Если вы хотите минимизировать ручные шаги, используйте контейнеризацию (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.
- Настройте регулярные бекапы и тесты восстановления.
Еще вопросы? Опишите проблему или пришлите фрагмент лога — помогу диагностировать.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента