Jira
- Вход локальную серверную версию Jira: https://jira.zina.com.ua/
- Облачная Jira: https://zinadesign.atlassian.net/
https://zinadesign.atlassian.net/
Теоретически можно поменять 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):
- Иконка шестеренки → User management → Create user
Чтобы разработчики могли ссылаться на таски Jira при обновлении Git, нужно каждый проект связать с репозиторием в GitLab.
Пример интеграции:
- Проект Jira: https://jira.zina.com.ua/projects/KST/
- Репозиторий GitLab: https://gitlab.com/zinadesign/kievspecteh-com
- Access Token (одинаков для всех проектов и репозиториев): https://info.zina.com.ua/adm/info#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`*
Авторизоваться как 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:
- Enter
- 3 Enter
- Enter
- n Enter (Back up Jira home directory?)
- Enter
- y Enter (Have you completed all these steps?)
- u Enter (Your existing Jira installation is about to be upgraded! Do you want to proceed?)
- 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
- Наша версия: Jira Software (Server) 10 Users: Starter License, SEN-8789263
- Support Expires: 12 дек 2020
- Billing Contacts: roman@zina.design
- Лицензия:
Главные директории:
/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;
В 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
Чтобы 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;
В случае прекращение работы любого домена на 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;
Решение с собственным шаблоном конфига:
