Установка Jira Service Management Server на Rocky Linux 8.6 c MySQL и NGINX

Ставим Jira Service Management 5.3.0 с MySQL 8 на Rocky Linux 8.6.

Вводные данные

Чистая обновленная Rocky Linux 8.6

Установка JiraSM 5.3.0 на Rocky Linux 8.6

Отключаем selinux

https://www.andreyolegovich.ru/linux/rocky/selinux.php

Сразу после установки Rocky Linux, отключим selinux, так как он будет мешать подключениям на веб сервер:

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

После требуется перезагрузить ОС

shutdown -r now

(необязательно) Установим Java

Jira для работы требует Java. А Java требует установки утилит fontconfig. Ставить их отдельно необязательно, так как Jira сама их поставит при установке. На данный момент Jira поддерживает Java11 версии, поставить Javaотдельно можно командой:

dnf -y install java-11-openjdk java-11-openjdk-devel

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

java -version
openjdk version “11.0.16.1” 2022-08-12 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.16.1.1-1.el8_6) (build 11.0.16.1+1-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.16.1.1-1.el8_6) (build 11.0.16.1+1-LTS, mixed mode, sharing)

Качаем и ставим Jira Service Management

Теперь, когда сервер подготовлен, качаем .bin с официального сайта, для этого нам понадобится предварительно установить пакет wget:

cd /tmp
dnf -y install wget
wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-servicedesk-5.3.0-x64.bin

Делаем скачанный файл исполняемым:

chmod +x atlassian-servicedesk-5.3.0-x64.bin

И запускаем установку:

./atlassian-servicedesk-5.3.0-x64.bin
WARNING: Please make sure fontconfig is installed in your Linux distribution for Jira installation.
Visit KB article for more information. https://confluence.atlassian.com/x/PRCEOQ
Unpacking JRE …
Starting Installer …
This will install Jira Service Desk 5.3.0 on your computer.
OK [o, Enter], Cancel [c]
Click Next to continue, or Cancel to exit Setup.
Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (use default settings) [1], Custom Install (recommended for advanced users) [2, Enter], Upgrade an existing Jira installation [3]
1
Details on where Jira Service Desk will be installed and the settings that will be used.
Installation Directory: /opt/atlassian/jira
Home Directory: /var/atlassian/application-data/jira
HTTP Port: 8080
RMI Port: 8005
Install as service: Yes
Install [i, Enter], Exit [e]
i
Extracting files …
/opt/atlassian/jira/bin/tcnative-1.dll
The file already exists.
Would you like Setup to overwrite it?
Yes [y], Yes to All [ya], No [n], No to All [na]
ya
Please wait a few moments while Jira Service Desk is configured.
Installation of Jira Service Desk 5.3.0 is complete
Start Jira Service Desk 5.3.0 now?
Yes [y, Enter], No [n]
y
Please wait a few moments while Jira Service Desk starts up.
Launching Jira Service Desk …
Installation of Jira Service Desk 5.3.0 is complete
Your installation of Jira Service Desk 5.3.0 is now ready and can be
accessed via your browser.
Jira Service Desk 5.3.0 can be accessed at http://localhost:8080
Finishing installation …

Установим SQL 8 для Jira

Установим SQL 8 из репозитория Appstream:

dnf install -y @mysql

Запускаем SQL и добавляем его в автозагрузку:

systemctl enable --now mysqld

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

mysql_secure_installation

Настраиваем SQL сервер

https://confluence.atlassian.com/jiracore/connecting-jira-to-mysql-8-0-1018272102.html

Найти расположение конфигурационного файла MySQL можно командой:

mysql --help | grep "Default options" -A 1

Редактируем файл:

nano /etc/my.cnf.d/mysql-server.cnf

Приводим его к виду (https://confluence.atlassian.com/doc/database-setup-for-mysql-128747.html):

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/run/mysqld/mysqld.pid
default-storage-engine=INNODB
character_set_server=utf8mb4
innodb_default_row_format=DYNAMIC
innodb_log_file_size=2G

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

systemctl restart mysqld

Создаем базу и пользователя для JiraSM:

mysql -u root -p
CREATE DATABASE jiradb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'jirauser'@'localhost' IDENTIFIED BY 'Str0ngDBP@ssw%rd';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,ALTER,INDEX on jiradb.* TO 'jirauser'@'localhost';
FLUSH PRIVILEGES;
QUIT;

Установим коннектор MySQL-Java

Для работы с MySQL Jira требует установки коннектора https://dev.mysql.com/downloads/connector/j/:

cd /tmp
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-8.0.31.zip
dnf install -y zip
unzip mysql-connector-j-8.0.31.zip
cp mysql-connector-j-8.0.31/mysql-connector-j-8.0.31.jar /opt/atlassian/jira/lib

Добавляем правила в Firewall

Добавляем исключения для нужных нам портов в Firewall:

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

Чтобы все заработало, перезагрузим сервер

shutdown -r now

Настроим коннектор HTTP:

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

Уберем закрывающие теги и добавим proxyName и proxyPort:

<!--
        <Connector port="8080" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^\`&quot;&lt;&gt;"
                   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"/>

Добавим еще один блок для обхода прокси:

<!-- Standard HTTP Connector -->
       <Connector port="8082" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^\`&quot;&lt;&gt;"
                  maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false"
                  maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true"
                  redirectPort="8443" acceptCount="100" disableUploadTimeout="true"/>

Перезапустим службу Жира:

systemctl restart jira

Настроим прокси NGINX для Jira

Установим и активируем Nginx:

dnf -y install nginx
systemctl enable --now nginx

Настроим Nginx

Создадим конфигурационный файл для Jira:

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

Замените jira.example.com на FQDN своего сервера:

server {
    listen 80;
    server_name jira.example.com;
    location / {
        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_pass http://jira.example.com:8080;
        client_max_body_size 10M;
    }
}

Перезапустим Nginx:

systemctl restart nginx

Настраиваем Jira на Rocky Linux

Убедимся, что службы jira и nginx запущены:

systemctl status jira nginx

Обе службы должны быть в статусе running. Если так, то двигаемся дальше.

Запускаем Jira по адресу http://jira.example.com

Установим Atlassian Confluence

Качаем .bin с официального сайта:

cd /tmp
wget https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-8.5.3-x64.bin

Делаем скачанный файл исполняемым:

chmod +x atlassian-confluence-8.5.3-x64.bin

И запускаем установку:

./atlassian-confluence-8.5.3-x64.bin
This will install Confluence 8.5.3 on your computer.
OK [o, Enter], Cancel [c]
Click Next to continue, or Cancel to exit Setup.
Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (uses default settings) [1],
Custom Install (recommended for advanced users) [2, Enter],
Upgrade an existing Confluence installation [3]
1
See where Confluence will be installed and the settings that will be used.
Installation Directory: /opt/atlassian/confluence
Home Directory: /var/atlassian/application-data/confluence
HTTP Port: 8090
RMI Port: 8000
Install as service: Yes
Install [i, Enter], Exit [e]
Extracting files …
Please wait a few moments while we configure Confluence.
Start Confluence now?
Yes [y, Enter], No [n]
Please wait a few moments while Confluence starts up.
Launching Confluence …
Your installation of Confluence 8.5.3 is now ready and can be accessed via
your browser.
Confluence 8.5.3 can be accessed at http://localhost:8090

Создаем базу и пользователя для Confluence

mysql -u root -p
CREATE DATABASE confluencedb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'confluenceuser'@'localhost' IDENTIFIED BY 'Str0ngDBP@ssw%rd';

В отличие от Jira, для Confluence мы должны предоставить полные права на базу:

GRANT ALL PRIVILEGES on confluencedb.* TO 'confluenceuser'@'localhost';
FLUSH PRIVILEGES;
QUIT;

Настройка MySQL для Confluence

Редактируем файл:

nano /etc/my.cnf.d/mysql-server.cnf

Приводим его к виду:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/run/mysqld/mysqld.pid
default-storage-engine=INNODB
character_set_server=utf8mb4
innodb_default_row_format=DYNAMIC
innodb_log_file_size=2G
collation-server=utf8mb4_bin
max_allowed_packet=256M
transaction-isolation=READ-COMMITTED
binlog_format=row
log_bin_trust_function_creators = 1

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

systemctl restart mysqld

Установим коннектор MySQL-Java

Для работы с MySQL Jira требует установки коннектора:

cd /tmp
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-8.0.31.zip
dnf install -y zip
unzip mysql-connector-j-8.0.31.zip
cp mysql-connector-j-8.0.31/mysql-connector-j-8.0.31.jar /opt/atlassian/confluence/lib

Добавляем правила в Firewall

https://www.centlinux.com/2020/04/install-jira-software-server-on-centos-8.html

Добавляем исключения для нужных нам портов в Firewall:

firewall-cmd --permanent --add-port=8090/tcp
firewall-cmd --reload

Чтобы все заработало, перезагрузим сервер

shutdown -r now

Добавляем Jira в автозагрузку

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

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

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

chown -R jira: /opt/atlassian/jira/

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

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

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

nano /lib/systemd/system/jira.service

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

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

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

[Install] 
WantedBy=multi-user.target

Включаем и запускаем службу:

systemctl daemon-reload
systemctl enable jira.service
systemctl start jira.service
systemctl status jira.service
Если получаем ошибку:
systemctl enable jira.service
Synchronizing state of jira.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable jira
update-rc.d: error: jira Default-Start contains no runlevels, aborting.

Это может происходить, если служба Жира уже создана в системе. Надо удалить и заново поставить службу:
cp /etc/init.d/jira /opt/atlassian/jira-init.d.bak && rm /etc/init.d/jira
sudo systemctl enable jira.service
Created symlink /etc/systemd/system/multi-user.target.wants/jira.service → /lib/systemd/system/jira.service.

Ссылки

https://www.centlinux.com/2020/04/install-jira-software-server-on-centos-8.html

https://www.it-admins.ru/index.php?option=com_content&view=article&id=42&Itemid=165

https://www.programmersought.com/article/83947545189/#%E4%BA%8C%E3%80%81%E4%B8%8B%E8%BD%BD%E5%AE%89%E8%A3%85%E7%A0%B4%E8%A7%A3%E5%8C%85

https://itproblog.ru/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-jira-%D0%BD%D0%B0-ubuntu-20-04/#Nastrojka_zapuska_v_kacestve_sluzby

https://confluence.atlassian.com/jirakb/run-jira-as-a-systemd-service-on-linux-979411854.html

Оставьте ответ

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

24 ÷ = 24