Jira

Матеріал з Wiki.Zina
Версія від 08:14, 18 травня 2022, створена >Zina (→Особенности облачной Jira)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Особенности облачной Jira

[ред. | ред. код]

https://zinadesign.atlassian.net/

Собственный URL

[ред. | ред. код]

Теоретически можно поменять URL на https://jira.zina.design здесь:

https://jira.atlassian.com/browse/CLOUD-6999
admin.atlassian.com > Products (top nav bar) > Product URLs (left side nav bar) > Update URL link should be displayed beside your primary/sandbox instances.

Создание пользователей и проектов

[ред. | ред. код]

В нашей лицензии ограничение — 10 активных пользователей, поэтому экономим аккаунты пользователей.

Создание проектов обязательно делать из-под admin (он же PM) — чтобы не переназначать потом права.

Новый пользователь создается ручками из админского аккаунта (входящего в группу jira-administrators — это PM (admin) и roman):

Чтобы разработчики могли ссылаться на таски Jira при обновлении Git, нужно каждый проект связать с репозиторием в GitLab.

Пример интеграции:

Зайти на https://jira.zina.com.ua/secure/JigitAdminAction.jspa под пользователем с правами администратора Jira и нажать кнопку Add.

Создание резервной копии Jira (см. вместе с паролями здесь https://info.zina.com.ua/adm/hp#backup-jira):

1) Зайти по SSH и переключиться в рута:

ssh -p851 administrator@37.53.93.49
sudo -i

2) База данных (пароль-к-базе-PostgreSQL здесь):

cd /backup
PGPASSWORD="пароль-к-базе-PostgreSQL" pg_dump -U zina_jira zina_jira | gzip > jira-`date +%Y-%m-%d_%H-%M`.sql.gz

3) Основной конфиг:

cp /opt/atlassian/jira/conf/server.xml /backup/jira-`date +%Y-%m-%d_%H-%M`-server.xml

4) Installation Directory:

cd /opt/atlassian/
zip -r jira-`date +%Y-%m-%d_%H-%M`-opt.zip jira
mv jira-*-opt.zip /backup/

5) Home Directory, за исключением архивов /jira/export/:

cd /var/atlassian/
zip -r jira-`date +%Y-%m-%d_%H-%M`-var.zip application-data -x "application-data/jira/export/*.zip"
mv jira-*-var.zip /backup/

6) Скопировать на NAS (пароль rsync здесь: https://info.zina.com.ua/adm/nas#rsync):

rsync -av --progress /backup/jira-`date +%Y-%m-%d`* rsync@192.168.1.102::backup/hp/Jira/

7) Удалить ненужные архивы:

rm /backup/jira-`date +%Y-%m-%d`*

Обновление Jira

[ред. | ред. код]

Авторизоваться как root:

sudo -i

Остановить Jira:

/opt/atlassian/jira/bin/stop-jira.sh

Забэкапить действующий сайт (см. выше).

Перейти в браузере на страницу https://www.atlassian.com/ru/software/jira/update и найти нужную версию Jira (Linux 64 Bit).

Когда она начнет скачиваться, остановить и скопировать ссылку.

Перейти в SSH в домашнюю папку root и скачать ссылку с помощью wget:

cd
wget https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-8.6.0-x64.bin

Запустить процесс установки:

chmod a+x atlassian-jira-software-8.6.0-x64.bin
./atlassian-jira-software-8.6.0-x64.bin

Во время которого выбрать опцию Upgrade:

  1. Enter
  2. 3 Enter
  3. Enter
  4. n Enter (Back up Jira home directory?)
  5. Enter
  6. y Enter (Have you completed all these steps?)
  7. u Enter (Your existing Jira installation is about to be upgraded! Do you want to proceed?)
  8. Enter (Start Jira Software 8.6.0 now?)

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

tail -f /opt/atlassian/jira/logs/catalina.out

Прогрес запуска можно видеть в браузере: https://jira.zina.com.ua/

Если выдается ошибка 502 Bad Gateway, то, вероятно, при обновлении был перезаписан основной конфиг server.xml. Восстановить его:

cd /opt/atlassian/jira/conf
cp server.xml server.xml.upgrade
cp server.xml.old server.xml

Также, возможно, потребуется поменять права на файлы Jira с root на jira:

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

Если что-то пошло не так

[ред. | ред. код]

Остановить Jira:

/opt/atlassian/jira/bin/stop-jira.sh

Очистить базу и импортировать последний рабочий бэкап:

Получить список имеющихся бэкапов базы:

cd /backup
ls -l jira*.sql

Удалить и пересоздать базу:

psql -U zina_jira
DROP DATABASE zina_jira;
CREATE DATABASE zina_jira WITH ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' TEMPLATE=template0 OWNER zina_jira;
GRANT ALL ON DATABASE zina_jira TO zina_jira;

Импортировать нужный бэкап:

\connect zina_jira;
\i zina_jira-last-worked.sql;

Добавить права на все объекты после импорта SQL:

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO zina_jira;
GRANT SELECT, UPDATE, USAGE ON ALL SEQUENCES IN SCHEMA public to zina_jira;

Выйти из базы:

\q

Заменить Installation Directory на последнюю рабочую:

cp jira-last-worked-opt.zip /opt/atlassian/
cd /opt/atlassian
rm -rf jira
unzip jira-last-worked-opt.zip
chown -R jira:jira jira

Запустить Jira:

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

Следить за процессом запуска:

tail -f /opt/atlassian/jira/logs/catalina.out

Настройки

[ред. | ред. код]

Лицензия

[ред. | ред. код]

Пути, конфиги, логи, запуск и остановка

[ред. | ред. код]

Главные директории:

/opt/atlassian/ — Installation Directory
/var/atlassian/ — Home Directory

Конфиги:

/opt/atlassian/jira/conf/server.xml — основной
/opt/atlassian/jira/atlassian-jira/WEB-INF/classes/jira-application.properties — задается путь к домашней директории вида "jira.home = /var/atlassian/application-data/jira"
/opt/atlassian/jira/bin/user.sh — пользователь, из-под которого работает Jira
/var/atlassian/application-data/jira/dbconfig.xml — база данных

Плагины:

/var/atlassian/application-data/jira/plugins/installed-plugins

Лог-файлы:

/opt/atlassian/jira/logs/catalina.out
/var/atlassian/application-data/jira/log/atlassian-jira.log

Запуск и остановка:

/opt/atlassian/jira/bin/start-jira.sh
/opt/atlassian/jira/bin/shutdown.sh

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

Мониторинг процесса запуска:

tail -f /opt/atlassian/jira/logs/catalina.out

Проверить, запущена Jira или нет (занят или нет порт 8005):

lsof -i:8005

База данных

[ред. | ред. код]

Конфиг:

vim /var/atlassian/application-data/jira/dbconfig.xml

Создать пустую базу с правильными правами (пароль к базе PostgreSQL здесь):

su - postgres
psql -U zina_jira
CREATE ROLE zina_jira;
ALTER ROLE zina_jira LOGIN;
ALTER ROLE zina_jira PASSWORD 'пароль-к-базе-PostgreSQL';
CREATE DATABASE zina_jira WITH ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' TEMPLATE=template0 OWNER zina_jira;
GRANT ALL ON DATABASE zina_jira TO zina_jira;

Добавить нужные права на все объекты после импорта SQL:

\connect zina_jira;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO zina_jira;

Установка PostgreSQL 9.6

[ред. | ред. код]

В Ubuntu Server 18.04 по умолчанию устанавливается PostgreSQL 10, а его не поддерживает Jira. Поєтому пришлось установить PostgreSQL 9.6.

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql-9.6
Success. You can now start the database server using:

   /usr/lib/postgresql/9.6/bin/pg_ctl -D /var/lib/postgresql/9.6/main -l logfile start

Ver Cluster Port Status Owner    Data directory               Log file
9.6 main    5433 down   postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

Переключение между версиями: порт по умолчанию — 5432. Задаются порты в конфигах:

vim /etc/postgresql/10/main/postgresql.conf
port = 5432 # Поменян на 5433

vim /etc/postgresql/9.6/main/postgresql.conf
port = 5433 # Поменян на 5432

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

su - postgres
psql -p 5433 -l

Чтобы можно было подключаться в командной строке под юзером zina_jira, а не только postgres:

vim /etc/postgresql/9.6/main/pg_hba.conf

Изменить две строки:

local   all             postgres                                trust
local   all             all                                     md5

Перезапустить PostgreSQL:

/etc/init.d/postgresql restart

Конфиг Nginx для Jira на HestiaCP

[ред. | ред. код]

Чтобы Jira открывалась через SSL, настроен NGINX reverse proxy.

Документация Jira: Configure Jira server to run behind a NGINX reverse proxy - Atlassian Documentation

Конфиги Nginx на HestiaCP здесь:

/home/zina/conf/web/jira.zina.com.ua/

nginx.conf

server {
  
    listen 192.168.1.105:80;
    server_name jira.zina.com.ua;

    include /home/zina/conf/web/jira.zina.com.ua/nginx.forcessl.conf*;

    access_log     /var/log/apache2/domains/jira.zina.com.ua.log combined;
    access_log     /var/log/apache2/domains/jira.zina.com.ua.bytes bytes;

    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.zina.com.ua:8766;
        client_max_body_size 10M;
    }

    location ~ /\.ht    {return 404;}
    location ~ /\.svn/  {return 404;}
    location ~ /\.git/  {return 404;}
    location ~ /\.hg/   {return 404;}
    location ~ /\.bzr/  {return 404;}

    include /home/zina/conf/web/jira.zina.com.ua/nginx.conf_*;
}

nginx.ssl.conf

server {
    listen      192.168.1.105:443 ssl http2;
    server_name jira.zina.com.ua ;
    ssl_certificate      /home/zina/conf/web/jira.zina.com.ua/ssl/jira.zina.com.ua.pem;
    ssl_certificate_key  /home/zina/conf/web/jira.zina.com.ua/ssl/jira.zina.com.ua.key;
    ssl_stapling on;
    ssl_stapling_verify on;
    error_log  /var/log/apache2/domains/jira.zina.com.ua.error.log error;

    include /home/zina/conf/web/jira.zina.com.ua/nginx.hsts.conf*;

    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://192.168.1.105:8766;
    }

    location ~ /\.ht    {return 404;}
    location ~ /\.svn/  {return 404;}
    location ~ /\.git/  {return 404;}
    location ~ /\.hg/   {return 404;}
    location ~ /\.bzr/  {return 404;}

    include /home/zina/conf/web/jira.zina.com.ua/nginx.ssl.conf_*;
}

nginx.forcessl.conf

return 301 https://$host$request_uri;

Ошибка при обновлении сертификата SSL

[ред. | ред. код]

В случае прекращение работы любого домена на HP, сперва надо проверить конфигурационные файлы nginx для доменов. При обновлении SSL сертификатов, перезаписываются файлы конфигурации под стандартные шаблоны — а в них проксирование осуществляется на Apache, 8443 порт.

Для jira нужно в:

/etc/nginx/conf.d/domains/jira.zina.com.ua.ssl.conf 

поменять значение с:

proxy_pass      https://192.168.1.105:8443;

на:

proxy_pass      http://192.168.1.105:8766;

Решение с собственным шаблоном конфига:

Логотип

[ред. | ред. код]

Ссылки

[ред. | ред. код]