Atlassian JIRA Setup unter Ubuntu 14.04

Atlassian JIRA Setup unter Ubuntu 14.04

Atlassian JIRA repräsentiert eine kostenpflichtige Software von Atlassian zum einfachen Management der agilen Softwareentwicklung. Mit Atlassian JIRA kann jeder in einem Team hervorragende Software planen, nachverfolgen und releasen. Die JIRA Software setzt dabei auf das Entwickeln von Software mit Scrum und/oder Kanban und ermöglicht anhand eines vorgegebenen oder eigens definierten Workflows eine Visualisierung eines Projektes. Das heißt, dass jeder Mitarbeiter eines Projektes genau weiß, was noch zu erledigen ist, was gerade erledigt wird und was erledigt wurde. Zusätzlich lässt sich JIRA mit vielen unterschiedlichen Entwicklertools, wie zum Beispiel Git, ohne Probleme koppeln und ermöglicht so, eine bestehende Arbeitsweise zu unterstützen und zu erleichtern.

Nun stellt man sich eventuell die Frage, ob JIRA neben Management von agiler Softwareentwicklung, auch noch für andere Dinge genutzt werden kann? Ja, denn JIRA kann unter anderem auch zur Aufgabenverwaltung (Task Management) oder für das Prozessmanagement (Process Management) und noch vieles mehr eingesetzt werden. So ist es ebenfalls möglich, JIRA als Service Desk einzusetzen, um so auf schnelle Art und Weise für anstehende Probleme eine Lösung zu finden, oder aber um mit Protfolio für JIRA realistische Roadmaps mittels Echtzeitplanung zu erstellen. Mehr Info zu Atlassian JIRA unter https://de.atlassian.com/software/jira.

Um nun zur eigentlichen Frage zu kommen: Wie lässt sich Atlassian JIRA eigentlich installieren, um es dann produktiv einsetzen zu können? Genau dies soll dieser Artikel Schritt für Schritt anhand eines Ubuntu 14.04 demonstrieren. Das System sollte Java mit gesetztem JAVA_HOME installiert haben. Mehr Information dazu finden man in diesem Artikel.

Atlassian JIRA Installer Download

Zu Beginn wird der Installer von Atlassian hier heruntergeladen. Auf dieser Seite wählt man nun das Betriebsystem, in diesem Fall Linux, und je nach Version den 32-Bit oder 64-Bit Installer aus. Auf der Command Line gibt man zum Download folgenden Befehl ein, um den Installer herunterzuladen:

cd /opt
sudo wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.1.7-jira-7.1.7-x64.bin

Beim Schreiben dieser Anleitung, ist die aktuelle JIRA Version 7.1.7. Soll eine neuere Version verwendet werden, muss der obige Befehl angepasst werden, indem die Version entsprechend verändert wird.

Atlassian JIRA Installation

Nachdem der Download abgeschlossen ist, kann nun die JIRA Installation gestartet werden. Dafür werden folgende Befehle ausgeführt, welche den Installer ausführbar macht und diesen ausführt:

sudo chmod a+x /opt/atlassian-jira-software-7.1.7-jira-7.1.7-x64.bin
sudo /opt/atlassian-jira-software-7.1.7-jira-7.1.7-x64.bin

Als erstes muss die Installation als solche auch akzeptiert werden, ansonsten wird diese sofort abgebrochen. Am Bildschirm sollte folgendes zu sehen sein, man bestätigt mit der ‚Enter‘ Taste.

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

Im Folgenden ist es nun nötig die Art der Installation auszuwählen, wie unten veranschaulicht. Zur Auswahl steht hier einerseits die Express Installation (Express Install) und andererseits die benutzerdefinierte Installation (Custom Install), sowie die Möglichkeit zum Upgrade einer bereits existierenden Installation. Der Hauptunterschied zwischen Express und benutzerdefinierten Installation ist lediglich, dass man in der Express Installation keine eigene Konfiguration der einzelnen Optionen durchführen kann. Aus diesem Grund empfiehlt es sich hier, die benutzerdefinierte Installation auszuwählen. Um genau dies zu tun, tippt man nun ‚2‘ und bestätigt wieder mit ‚Enter‘.

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], Upgrade an existing JIRA installation [3, Enter]

Als letzten Schritt kann man die einzelnen Optionen setzen oder aber die vorgegebenen Standardwerte nehmen. So können das Installationsverzeichnis, in welchem JIRA installiert werden soll, das JIRA Datenverzeichnis, sowie die TCP Ports für eingehende HTTP Verbindungen und der Kontrollport (RMI-Port) gesetzt werden. Es empfiehlt zu guter Letzt, JIRA im Hintergrund als Dienst arbeiten zu lassen, weshalb bei entsprechender Frage des Installers, dies auch entsprechend konfiguriert wird (ist standardmäßig aktiviert).

Nach erneuter Bestätigung ist die Konfiguration nun abgeschlossen und JIRA auf dem System, entsprechend der angegebenen Konfiguration, installiert. Hat man die Option des Startens als Dienst aktiviert, so sollte JIRA bereits auf dem System laufen. Falls man JIRA nicht als Dienst starten möchte, ist ein manuelles Starten und Stoppen von JIRA mittels der bereits mitgelieferten Shell-Skripten möglich, welche im bin Ordner im Installationspfad von JIRA gefunden werden können.

# jira as service
sudo service jira start
sudo service jira stop

# jira per script
sudo /opt/atlassian/jira/start-jira.sh
sudo /opt/atlassian/jira/stop-jira.sh

JIRA ist nun gestartet und aktiv. Nun kann dieses über http://<domain_or_IP>:<port> aufgerufen werden. Der Port ist jener Port, welcher während der Installation konfiguriert wurde.

MySQL Datenbank

Beim ersten Aufruf von JIRA startet der JIRA Setup Wizard. Mit diesem ist das Einstellen von JIRA relativ einfach möglich. Im Zuges des Setups, hat man zur Auswahl eine interne oder externe Datenbank zu konfigurieren. Es empfiehlt sich extern auszuwählen, da man dadurch eine bessere Kontrolle über die von JIRA verwendete Datenbank hat. Aus diesem Grund installiert man nun MySQL auf dem System mittels folgendem Befehl.

sudo apt-get install mysql-server

Nachdem die Installation erfolgreich abgeschlossen wurde, muss MySQL nur mehr „gesichert“ werden. MySQL kommt nach der Installation mit einer Testdatenbank und einem ungesicherten Root-Zugriff daher. Um dies zu ändern, und MySQL somit zu sichern, wird folgender Befehl ausgeführt.

sudo mysql_secure_installation

Im nächsten Schritt wird nun der MySQL Connetcor für Java (Connector/J) heruntergeladen, damit JIRA auf die MySQL Datenbank zugreifen kann. Dieser kann hier gefunden und heruntergeladen werden. Nach Abschluss des Downloads muss der Connector nur mehr nach /opt/atlassian/jira/lib/ kopiert werden. Anschließend ist ein Neustart von JIRA erforderlich.

Als nächstes ist das Anlegen eines JIRA Users und einer JIRA Datenbank erforderlich. So öffnet man nun die MySQL Shell mit folgendem Befehl und gibt das Root-User Password ein. Dieses ist jenes Passwort, welches bei der mysql_secure_installation gesetzt wurde.

mysql -u root -p

Im nächsten Schritt wird ein Benutzer für JIRA angelegt. Dafür muss nun folgendes SQL Statement ausgeführt werden. Wichtig hierbei ist, dass man <JIRA_USER_PASSWORD> mit einem vernünftigen Password ersetzt.

CREATE USER 'jiradbuser'@'localhost' IDENTIFIED BY '<JIRA_USER_PASSWORD>';

Falls der Name des JIRA Users geändert werden soll, dann statt ‚jiradbuser‘ einen anderen Namen angeben. Wurde dies geändert, dann bei den folgenden Befehlen entsprechend ersetzen. 

Als nächstes wird nun die JIRA Datenbank aufgesetzt. Dafür wird folgendes SQL Statement in der MySQL Shell ausgeführt.

CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;

Falls der Name der JIRA Datenbank geändert werden soll, dann statt jiradb einen anderen Namen angeben. Wurde dies geändert, dann auch dies bei den folgenden Befehlen entsprechend ersetzen.

Zu guter Letzt ist es nötig dem zuvor angelegten JIRA User, den Zugriff auf die JIRA Datenbank zu erlauben. Hierfür wird einfach folgender Befehl eingegeben.

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on jiradb.* TO 'jiradbuser'@'localhost' IDENTIFIED BY '<JIRA_USER_PASSWORD>';
flush privileges;

Nicht vergessen: Falls obige Befehle für den User und die Datenbank bezüglich des jeweiligen Namens geändert wurden, das SQL Statement entsprechend anpassen.

Um nun sicher zu gehen, dass alles erfolgreich geklappt hat, kann folgendes SQL Statement ausgeführt werden.

SHOW GRANTS FOR 'jiradbuser'@'localhost';

Die MySQL Shell kann nun geschlossen werden, da der User und die Datenbank für JIRA angelegt wurde. Zu guter Letzt muss MySQL noch mit folgenden Parametern konfiguriert werden. Zu aller erst muss der Standardspeicher für MySQL gesetzt werden:

[mysqld]
...
default-storage-engine=INNODB
...

Als nächstes folgt das Setzen des Limits der maximalen Paketgröße auf einen höheren Wert:

[mysqld]
...
max_allowed_packet=256M
...

Im nächsten Schritt folgt das Ändern der Größe der MySQL Logdatei:

[mysqld]
...
innodb_log_file_size=256M
...

Zu guter Letzt, muss, falls vorhanden, der Parameter NO_AUTO_VALUE_ON_ZERO gelöscht werden:

// löschen falls dies existiert
sql_mode = NO_AUTO_VALUE_ON_ZERO

Nun ist alles bereit, MySQL muss nur noch neu gestartet werden mittels service mysqld stop . Anschließend kann im Setup Wizard der MySQL User und die MySQL Datenbank für JIRA konfiguriert werden.

NGINX Reverse Proxy

Soll JIRA nicht direkt aufgerufen werden können bzw. direkt im Netz hängen, so kann ein Reverse Proxy, zum Beispiel NGINX, vor JIRA geschalten werden. Um NGINX zu installieren, ist lediglich die Eingabe folgendes Befehls auf der Shell nötig.

sudo apt-get install nginx

Nach Abschluss der Installation von NGINX, muss JIRA und NGINX noch konfiguriert werden. Für NGINX legt man unter /etc/nginx/sites-available/ die Datei jira.conf an. Nun kopiert man folgenden Inhalt in diese Datei:

upstream jira {
    server 127.0.0.1:8080 fail_timeout=0; # update with your configurated port
}

server {
    listen *:80;
    server_name jira.domain.tld;
    server_tokens off;
    return 301 https://$server_name$request_uri;
}

server {
    listen *:443;
    server_name jira.domain.tld;
    server_tokens off;

    ## Strong SSL Security
    ssl on;
    ssl_certificate /etc/nginx/ssl/server.crt; # replace with your cert
    ssl_certificate_key /etc/nginx/ssl/server.key; # replace with your key
    ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 5m;
   
    ## If you use HTTPS make sure you disable gzip compression to be safe against BREACH attack. gzip off;
    gzip ofF;

    # Logs
    access_log  /var/log/nginx/jira_access.log;
    error_log   /var/log/nginx/jira_error.log;

    ## Client Upload Size in MB
    client_max_body_size 20M;

    location / {
        proxy_set_header        Host $server_name;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_pass              http://jira;
    }
}

Diese Konfiguration konfiguriert NGINX für die Verwendung von SSL/TLS.

Vor dem Schließen des Editors, müssen Änderungen vorgenommen werden. So muss statt jira.domain.tld eine gültige Domain und statt /etc/nginx/ssl/server.crt bzw. /etc/nginx/ssl/server.key ein gültiger Pfad für das SSL/TLS Zertifikat eingetragen werden. Nun kann die Datei gespeichert und der Editor geschlossen werden.

Für JIRA wird unter /opt/atlassian/jira/conf/server.xml der vorhandene Connector verändert, um die Reverse Proxy Konfiguration zu ermöglichen. Dafür Öffnet man die Datei im Editor und ändert folgenden Inhalt:

<Server ...>
    ...
    <Service ...>
        <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"
            proxyName="jira.domain.tld"
            proxyPort="443"
            scheme="https"
            secure="true"
        />
    </Service>
    ...
</Server>

Auch hier muss wieder statt der Domain jira.domain.tld eine gültige Domain eingetragen werden. Relevant für die Reverse Proxy Konfiguration über SSL sind lediglich folgende Attribute des Connectors und zwar proxyName=“jira.example.com“ proxyPort=“443″ scheme=“https“ secure=“true“.

Ruft man nun http://<domain_or_IP> auf, so sollte ein Mapping von HTTP auf HTTPS (https://<domain_or_IP>:<port>) stattfinden und JIRA erscheinen. Gratulation, Atlassian JIRA wird über einen NGINX Reverse Proxy aufgerufen.

Alles in Allem sollte Atlassian  JIRA nun auf dem System installiert worden sein, eventuell eine MySQL Datenbank und/oder einen NGINX Reverse Proxy benutzen. Als nächste Schritte muss der Setup Wizard abgeschlossen werden (falls noch nicht im Zuge dieses Artikels getan) und Atlassian JIRA nur mehr sinnvoll genutzt werden.

About the author /


Schon früh hat sich meine technische Begabung gezeigt, weshalb ich mich vor ein paar Jahren entschloss ein Informatik Studium zu beginnen. Ich beschäftige mich intensiv mit Programmieren, besonders im Bereich Java und Mobile Applications. Ich bin immer bemüht mich in verschiedensten technischen Bereichen weiterzubilden und neue Erfahrungen zu sammeln. Außerhalb der technischen Welt spiele ich gerne Squash, hin und wieder ein interessantes Computerspiel und ich versuche mich im Kochen und Backen mit mehr oder weniger gutem Erfolg.

Related Articles

Post your comments

Your email address will not be published. Required fields are marked *

*

Unterstütz uns!

Folgt uns!

Diese Seite

wurde erstellt mit Ehrgeiz, Liebe und viel Koffein. Bei der Erstellung kamen keine jar-Dateien zu Schaden. Das Logo wurde erstellt von Star-seven.at.