Выбор в пользу установки и внедрения JIRA на CentOS и PostgreSQL основан на предпочтениях Atlassian. PostgreSQL является рекомендуемой СУБД для JIRA и других продуктов Atlassian. Что касается ОС - хотя JIRA Linux Installer собран для успешной установки на всех дистрибутивах linux, Atlassian тестирует JIRA Linux Installer только на CenOS. Так что мы укажем шаги по установке JIRA Software Server с использованием такой конфигурации. Дополнительно к этому рассмотрим вопрос типовой настройки JIRA за обратным прокси (reverse proxy) с SSL.

Все детали и скрины относятся к:

Подготовка

Перед тем как начать, вам необходимо определить куда вы будете скачивать JIRA. Лучшим решением будет создать общий каталог и скачивать продукты Atlassian в одно место. Создадим каталог для этих целей (если вы еще его не создали):

sudo yum update
sudo yum install vim wget
sudo mkdir /opt/atlassian
cd /opt/atlassian/

Загрузка

sudo wget https://downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-7.2.3-x64.bin
sudo chmod +x atlassian-jira-software-7.2.3-x64.bin

Установка

sudo ./atlassian-jira-software-7.2.3-x64.bin
Unpacking JRE ...
Starting Installer ...
Nov 01, 2016 10:49:13 AM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
Nov 01, 2016 10:49:13 AM java.util.prefs.FileSystemPreferences$2 run
INFO: Created system preferences directory in java.home.

This will install JIRA Software 7.2.3 on your computer.
OK [o, Enter], Cancel [c]
o
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]
2

Where should JIRA Software be installed?
[/opt/atlassian/jira]

Default location for JIRA Software data
[/var/atlassian/application-data/jira]

Configure which ports JIRA Software will use.
JIRA requires two TCP ports that are not being used by any other
applications on this machine. The HTTP port is where you will access JIRA
through your browser. The Control port is used to startup and shutdown JIRA.
Use default ports (HTTP: 8080, Control: 8005) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]

JIRA can be run in the background.
You may choose to run JIRA as a service, which means it will start
automatically whenever the computer restarts.
Install JIRA as Service?
Yes [y, Enter], No [n]
y
Details on where JIRA Software 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 ...
  atlassian-jira/secure/admin/views/filters/shared-filters.jsp

Please wait a few moments while JIRA Software is configured.
Installation of JIRA Software 7.2.3 is complete
Start JIRA Software 7.2.3 now?
Yes [y, Enter], No [n]
y

Please wait a few moments while JIRA Software starts up.
Launching JIRA Software ...
Installation of JIRA Software 7.2.3 is complete
Your installation of JIRA Software 7.2.3 is now ready and can be accessed
via your browser.
JIRA Software 7.2.3 can be accessed at http://localhost:8080
Finishing installation ...

Настройка firewalld

В CentOS 7 по умолчанию используется firewalld, поэтому необходимо открыть порты, по которым будет доступна JIRA.

Сначала проверим active zones:

firewall-cmd --get-active-zones
public
  interfaces: eth0

Затем разрешим порт, по которому будет доступна JIRA (по умолчанию 8080):

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

После этого JIRA станет доступна через web (http://yourIPaddress:8080 или, если настроен DNS, http://jiraserver:8080).

Установка PostgreSQL

Как уже говорилось выше PostgreSQL является рекомендованной Atlassian-ом СУБД. Также это самый легкий способ установки, так как не нужны дополнительные шаги по отдельной установке Java connector:

sudo yum install postgresql-server

После установки PostgreSQL, необходимо сконфигурировать СУБД.

Определим каталог, в котором будут содержаться все файлы PostgreSQL. Для этого определим переменную PGDATA:

export PGDATA=/var/lib/pgsql/data

Инициализируем (выполняется единожды) СУБД в PGDATA:

sudo postgresql-setup initdb

Добавим PostgreSQL в автозапуск  и запустим:

sudo systemctl enable postgresql
sudo systemctl start postgresql

Создание и настройка БД для JIRA

sudo -u postgres -i
-bash-4.2$ psql
psql (9.2.15)
Type "help" for help.

postgres=# CREATE USER jiradbuser PASSWORD 'jiradbpassword';
GRANT ALL ON SCHEMA public TO jiradbuser;
GRANT ALL ON ALL TABLES IN SCHEMA public TO jiradbuser;
CREATE DATABASE jiradb WITH ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0 OWNER=jiradbuser CONNECTION LIMIT=-1;
\q

Конфигурирование метода аутентификации PostgreSQL

Дефолтный метод аутентификации для локальных соединений в PostgreSQL установлен в 'ident' (подробнее можно ознакомится на официальном сайте PostgreSQL).

Так как мы не будем использовать 'ident' сервер, установим метод аутентификации в md5. Все эти настройки хранятся в файле pg_hba.conf. Для этого необходимо в данном файле:

sudo vim /var/lib/pgsql/data/pg_hba.conf

изменить строку

host    all             all             127.0.0.1/32            ident

на

host    all             all             127.0.0.1/32            md5

и перегрузить сервис:

sudo systemctl reload postgresql

Теперь всё готово для начала настройки JIRA Software Server.

Настройка JIRA

Откройте JIRA в браузере используя адрес сервера и порт 8080.

Выберите язык и PostgreSQL в качестве внешней БД.





Если вы прошли все эти шаги, можно сказать, что вы почти закончили установку. Далее идут еще несколько шагов, определяющих настройки JIRA (название, администратор, лицензия, email), которые не требуют дополнительных пояснений и могут быть легко изменены позже при администрировании JIRA.

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

Типовой конфигурацией работы JIRA является использование прокси, терминирующее https трафик JIRA.

Установите Nginx на сервере, который будет использоваться в качестве прокси:

sudo yum update
sudo yum install nginx

В первую очередь необходимо разрешить только https трафик, перенаправив все http запросы на https. Для этого создадим конфигурационный файл nginx, который будет перенаправлять запросы c 80 порта на 443 порт:

vim /etc/nginx/conf.d/nonssl.conf

и пропишем следующую конфигурацию (вместо jiraserver пропишете свой url):

server {
    listen       80;
    server_name  <jiraserver>;
    access_log  off;
    return 301 https://$host$request_uri;
}

После этого необходимо настроить проксирование https на наш сервер JIRA (предварительно вы должны иметь SSL сертификат, или сгенерировать самоподписаннный сертификат). Для этого создадим конфигурационный файл (вместо jiraserver пропишете свой url):

vim /etc/nginx/conf.d/jira.conf
server {
    listen       443 ssl;

    server_name  <jiraserver>;

    access_log  /var/log/nginx/jira-access.log;
    error_log   /var/log/nginx/jira-error.log;

    ssl on;
    ssl_certificate /etc/nginx/ssl/jira.crt;
    ssl_certificate_key /etc/nginx/ssl/jira.key;
    client_max_body_size 50m;
    location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://<IPaddress JIRA Server>:8080/;
    }
}

Если вы установили Nginx и JIRA на одном сервере, то в качестве proxy_pass можно использовать 'http://127.0.0.1:8080/'.

Теперь необходимо указать Tomcat-у, что JIRA работает за прокси, чтобы он мог корректно отвечать на запросы. Для этого необходимо поправить конфигурацию Tomcat, которая расположена в каталоге где установлена JIRA в файле server.xml:

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

на (вместо jiraserver пропишете свой url):

<Connector
                   port="8080"
                   maxThreads="150"
                   minSpareThreads="25"
                   connectionTimeout="20000"

                   enableLookups="false"
                   maxHttpHeaderSize="8192"
                   protocol="HTTP/1.1"
                   useBodyEncodingForURI="true"
                   redirectPort="8443"
                   acceptCount="100"
                   disableUploadTimeout="true"
                   bindOnInit="false"
                   proxyName="jiraserver"
                   proxyPort="443"
                   scheme="https"
                   secure="true"
        />

Если вы установили Nginx и JIRA на одном сервере и хотите обращаться к JIRA по localhost, то дополнительно необходимо будет дописать параметр address="127.0.0.1" перед port="8080".

Если ваша JIRA расположена в отдельном web каталоге (например, http://www.atlassian.com/jira), то дополнительно необходимо в файле server.xml установить путь к приложению, например:

<Context docBase="${catalina.home}/atlassian-jira" path="/jira" reloadable="false" useHttpOnly="true">

После всех этих манипуляций, необходимо рестартовать JIRA и Nginx:

sudo systemctl restart nginx
sudo systemctl restart jira

Настройка JIRA закончена!