Introduzione

Jira è uno strumento di gestione dei progetti agile sviluppato da Atlassian che può essere utilizzato per il rilevamento dei problemi, la gestione dei progetti e la correzione dei bug. Fornisce un'interfaccia Web intuitiva che consente di tenere traccia dei problemi. Puoi pianificare, tracciare e gestire tutti i tuoi agili progetti di sviluppo software attraverso un browser web. Può essere facilmente integrato con Confluence, Bitbucket e altri strumenti di sviluppo.

In questa guida, spiegherò come installare e configurare Jira su CentOS 8.

Prerequisiti

Se desideri installare Jira su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare Java

Jira è scritta in Java. Quindi dovrai installare Java sul tuo sistema. Puoi installarlo semplicemente eseguendo il seguente comando:

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

Dopo aver installato Java, verificare la versione installata di Java con il seguente comando:

java -version

Dovresti visualizzare un output simile al seguente:

openjdk version "11.0.6" 2020-01-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.6+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.6+10-LTS, mixed mode, sharing)

Installare anche i seguenti software per facilitare il completamento di questo tutorial:

sudo dnf install tar unzip nano wget

Installare MySQL Server

Al momento della stesura di questo tutorial, Jira non supporta MySQL versione 8 e il server MariaDB. Quindi dovrai installare MySQL 5.7 nel tuo sistema.

Innanzitutto, dovrai disabilitare il repository AppStream predefinito di MySQL dal tuo sistema. Puoi disabilitarlo con il seguente comando:

sudo dnf remove @mysql
sudo dnf module reset mysql
sudo dnf module disable mysql

Quindi, crea un nuovo file repository per MySQL 5.7 con il seguente comando:

sudo nano /etc/yum.repos.d/mysql-community.repo

Aggiungi le seguenti righe:

[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

Salva e chiudi il file al termine. Quindi, installare MySQL 5.7 eseguendo il comando seguente:

sudo dnf --enablerepo=mysql57-community install mysql-community-server

Una volta completata l'installazione, avvia il servizio MySQL e abilitalo dopo il riavvio del sistema con il seguente comando:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Dopo l'installazione, è stata generata una password root MySQL temporanea. È possibile acquisire la password con il seguente comando:

sudo grep 'A temporary password' /var/log/mysqld.log |tail -1

Dovresti ottenere un messaggio di output simile al seguente:

2020-04-02T23:09:31.357162Z 1 [Note] A temporary password is generated for [email protected]: te<mtGEnk0xq

Ricorda questa password perché ne avrai bisogno durante il processo di reimpostazione della password di root di MySQL.

Successivamente, si consiglia di ripristinare la password di root MySQL predefinita. Puoi resettarlo con il seguente comando:

sudo mysql_secure_installation

Ti verrà chiesto di fornire la password di root MySQL predefinita:

Enter password for user root: 

Fornisci la password di root MySQL predefinita, ottenuta dall'output del comando precedente, e premi Invio per impostare una nuova password come mostrato di seguito:

New password: 
Re-enter new password: 
Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

Digitare Y e premere Invio per continuare e seguire le istruzioni come mostrato di seguito:

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

Configurare il database MySQL

Successivamente, dovrai modificare alcune impostazioni di MySQL. Puoi farlo modificando il file my.cnf:

sudo nano /etc/my.cnf

Aggiungi le seguenti righe nella sezione [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

Salva e chiudi il file. Quindi, riavvia il servizio MySQL per implementare le modifiche:

sudo systemctl restart mysqld

Quindi, accedi alla shell MySQL:

sudo mysql -u root -p

Fornisci la tua password di root e crea un database e un utente per Jira con il seguente comando:

CREATE DATABASE jiradb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'jira'@'localhost' IDENTIFIED BY '[email protected]';

Successivamente, concedi i privilegi necessari al jiradb con il seguente comando:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,ALTER,INDEX on jiradb.* TO 'jira'@'localhost' IDENTIFIED BY '[email protected]';

Quindi, svuota i privilegi ed esci dalla shell MySQL con il seguente comando:

FLUSH PRIVILEGES;
EXIT;

Installare e configurare Jira

Innanzitutto, scarica l'ultima versione del file binario di installazione di Jira con il seguente comando:

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

Una volta scaricato, fornire l'autorizzazione di esecuzione al file binario scaricato:

sudo chmod +x atlassian-jira-software.bin

Quindi, eseguire il comando seguente per avviare l'installazione:

sudo ./atlassian-jira-software.bin

Ti verranno richieste diverse domande come mostrato di seguito:

Unpacking JRE ...
Starting Installer ...

This will install Jira Software 8.6.0 on your computer.
OK [o, Enter], Cancel [c]

Premi Invio per avviare l'installazione:

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

Digita 1 e premi Invio per esprimere l'installazione:

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]

Premi Invio per avviare l'installazione:

Extracting files ...
                                                                           
Please wait a few moments while Jira Software is configured.

Installation of Jira Software 8.6.0 is complete
Start Jira Software 8.6.0 now?
Yes [y, Enter], No [n]

Premi Invio per avviare il servizio Jira. Una volta completata l'installazione, dovresti ottenere il seguente output:

Please wait a few moments while Jira Software starts up.
Launching Jira Software ...

Installation of Jira Software 8.6.0 is complete
Your installation of Jira Software 8.6.0 is now ready and can be accessed
via your browser.
Jira Software 8.6.0 can be accessed at http://localhost:8080
Finishing installation ...

Successivamente, dovrai scaricare e installare il connettore MySQL Java in Jira.

Scarica il connettore MySQL con il seguente comando:

sudo wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.18.zip

Quindi, decomprimere il file scaricato e copiarlo nella directory di installazione di Jira con il seguente comando:

sudo unzip mysql-connector-java-8.0.18.zip
sudo cp mysql-connector-java-8.0.18/mysql-connector-java-8.0.18.jar /opt/atlassian/jira/lib

Successivamente, riavvia il servizio Jira con il seguente comando per implementare le modifiche:

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

Successivamente, dovrai configurare il connettore HTTP e definire il tuo proxy in Jira. Puoi configurarlo modificando il file /opt/atlassian/jira/conf/server.xml

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

Trova le seguenti righe:

<Connector port="8080" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^&#x5c;&#x60;&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"/>

E sostituiscilo con le seguenti righe, cambiando anche il valore proxyName="TUO_DOMINIO.COM":

<Connector port="8080" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^&#x5c;&#x60;&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="TUO_DOMINIO.COM" proxyPort="80"/>

Salvare e chiudere il file, quindi riavviare il servizio Jira per applicare le modifiche:

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

Configurare Nginx come proxy inverso per Jira

Per impostazione predefinita, Jira funziona sulla porta 8080. È consigliabile configurare Nginx come proxy inverso per Jira. Quindi puoi accedere a Jira usando la porta 80.

Innanzitutto, installa il server Web Nginx con il seguente comando:

sudo dnf install nginx -y

Dopo aver installato Nginx, avviare il servizio Nginx e abilitarlo per l'avvio dopo il riavvio del sistema:

sudo systemctl start nginx
sudo systemctl enable --now nginx

Quindi, crea un nuovo file di configurazione dell'host virtuale per Jira:

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

Aggiungi le seguenti righe:

server {
    listen 80;
    server_name TUO_DOMINIO.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://localhost:8080;
        client_max_body_size 10M;
    }
}

Salva e chiudi il file al termine. Quindi, prova Nginx per qualsiasi errore di sintassi con il seguente comando:

nginx -t

Dovresti ottenere il seguente output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Infine, riavvia il servizio Jira e Nginx per applicare le modifiche:

sudo /etc/init.d/jira stop
sudo /etc/init.d/jira start
sudo service nginx restart

Configurare SELinux e Firewall

Successivamente, sarà necessario consentire la porta 80 attraverso il firewall. Puoi configurarlo con il seguente comando, se hai il firewall attivo:

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

Per impostazione predefinita, SELinux è abilitato in CentOS 8. Si consiglia di disabilitarlo poiché potrebbe non far funzionare correttamente l'applicazione Jira.

È possibile disabilitare SELinux modificando il file /etc/selinux/config:

sudo nano /etc/selinux/config

Trova la seguente riga:

SELINUX = enforcing

E sostituiscilo con la seguente riga:

SELINUX=permissive

Salva e chiudi il file. Quindi, riavvia il sistema per applicare le modifiche:

Accedere alla Dashboard di Jira

Apri il tuo browser web e digita l'URL https://TUO_DOMINIO.com. Verrai reindirizzato alla dashboard.

Seleziona "i'will set it up myself" e fai clic sul pulsante Avanti.

Selezionare "My Own Database", fornire i dettagli del database e fare clic sul pulsante Avanti.

Fornisci il titolo dell'applicazione, l'URL e fai clic sul pulsante Avanti.

Fornire la chiave di licenza di prova e fare clic sul pulsante Avanti.

Fornisci i dettagli del tuo account amministratore e fai clic sul pulsante Avanti.

Fare clic sul pulsante Fine per completare l'installazione.

Seleziona la lingua desiderata e fai clic sul pulsante Continua.

Scegli il tuo avatar e fai clic sul pulsante Avanti.

Fai clic su "Create new project" per creare il tuo primo progetto.

Seleziona "Scrum software development" e fai clic sul pulsante Avanti.

Fare clic sul pulsante Seleziona per selezionare il flusso di lavoro.

Fornisci il nome e la chiave del tuo progetto, quindi fai clic sul pulsante Invia. Dovresti vedere la dashboard di Jira.

Conclusione

Hai installato e configurato correttamente Jira su CentoS 8. Ora puoi iniziare a esplorare Jira per sapere come funziona.