JIRA Software auf Debian 14 Installation

Standalone JIRA Installation auf einem Debian 14 System. Das Beispiel geht davon aus, dass ein LAMP Image von Turnkey verwendet wird (z.B. dieses hier).

VMWare Image installieren

Zunächst muss natürlich das Image installiert werden, worauf ich in diesem Post aber nicht eingehen möchte. Ihr benötigt für die JIRA Installation natürlich die bei der Konfiguration des Images eingegebenen Zugangsdaten.

Nach dem ersten Login auf dem frischen System, sollte ein Update durchgeführt werden.

apt-get update

JIRA Installation vorbereiten

Sind wir auf einem 32 oder 64 Bit System?

uname -a

Download der passenden JIRA Version.

wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.0.9-jira-7.0.9-x64.bin

Installer ausführbar machen, starten und den Anweisungen folgen

chmod +x atlassian-jira-software-7.0.9-jira-7.0.9-x64.bin 
./atlassian-jira-software-7.0.9-jira-7.0.9-x64.bin 

Memory Consumption prüfen

cat /proc/meminfo

As a rule of thumb, if you have fewer than 5000 issues, JIRA should run well with the default 768 MB. Granting JIRA too much memory can impact performance negatively, so it is best to start with 768 MB and make modest increases as necessary. As another data point, 40,000 works well with 768 MB to 1 GB.

MySQL vorbereiten

MySQL sollte auf dem TurnkeyLamp Image bereits installiert sein und laufen. Eine kurze Prüfung schadet aber nicht.

Prüfen, ob MySQL läuft

netstat -na | grep 3306 
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN

JIRA User und Datenbank anlegen

Den Schritten dieser Anleitung folgen

MySQL Driver bereitstellen

Es fehlt ein MySQL Driver für JIRA. Diesen herunterladen, die benötigte har-datei in das lib-Verzeichnis (/opt/atlassian/jira/lib) der JIRA-Installation entpacken und den Rest löschen.

wget http://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.38.tar.gz
mv mysql-connector-java-5.1.38.tar.gz /opt/atlassian/jira/lib 
cd /opt/atlassian/jira/lib 
tar -zxvf  mysql-connector-java-5.1.38.tar.gz mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar 
mv mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar . 
rm /opt/atlassian/jira/lib/mysql-connector-java-5.1.38.tar.gz 
rm -rf /opt/atlassian/jira/lib/mysql-connector-java-5.1.38

Danach JIRA einmal neu starten, damit der Treiber bereit steht.

service jira stop 

oder (manchmal geht der vorige Command nicht)

/etc/init.d/jira stop 

Mittels

ps -ef | grep jira 

gucken, ob der Service noch läuft.
Danach starten:

 service jira start && tail -f /opt/atlassian/jira/logs/catalina.out

Danach geht's mit dem Setup-Assistenten weiter.

* sollte man beim Installieren die interne Datenbank ausgewählt haben, gibt es hier die Anleitung, wie man auf MySQL wechselt.

JIRA Setup Assistent

Der Rest des Assistenten ist selbsterklärend.

Apache als Proxy für JIRA / JIRA Public Port ändern

JIRA läuft standardmässig auf Port 8080. In dem Setup mit Apache davor, kann man den Apache so einstellen, dass er Requests auf Port 80 an JIRA dahinter auf 8080 weitergibt.

Um den Apache dazu zu bringen, die Requests auf Port 80 zu JIRA weiterzuleiten, müssen folgende Schritte durchgeführt werden (Hinweis: diese Schritte sind nur eine Möglichkeit, zum Ziel zu gelangen).

Apache mod proxy aktivieren

a2enmod proxy_http

Virtual Host anlegen und Proxy Forward aktivieren

Die beiden Dateien /etc/apache2/sites-enabled/{your server's hostname}.conf und /etc/apache2/sites-available/{your server's hostname}.conf erstellen und folgenden Inhalt einfügen:

<VirtualHost *>
ServerName {your server's hostname}
ProxyRequests on
ProxyRemote * http://localhost:8080
</VirtualHost>

In der Datei /etc/apache2/sites-available/000-default.conf die Proxy-Pass Einstellungen hinzufügen:

# JIRA Proxy Configuration:
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

ProxyRequests           Off
ProxyPreserveHost       On
ProxyPass               /       http://{your server's ip}:8080/
ProxyPassReverse        /       http://{your server's ip}:8080/

Apache neu starten.

Restore-Prozedur an dieser Stelle

Falls dieser Guide zum Restore genutzt wird Guide für automatisiertes JIRA Backup unter Unix, die Datei /etc/apache2/sites-available/{your server's hostname}.conf mit obigem Inhalt erstellen und von /etc/apache2/sites-enabled/ aus symlinken.

ln -s /etc/apache2/sites-available/{your server's hostname}.conf /etc/apache2/sites-enabled/{your server's hostname}.conf  

JIRA BaseURL aktualisieren

Nachdem der Hostname im Apache konfiguriert ist, müssen wir auch JIRA entsprechend einstellen.

G + G drücken, settings eintippen und den Menüpunkt General configuration advanced settings wählen:

und die Base URL auf den gewählten Hostname ändern.

ProxyName in Tomcat server.xml angeben

Ein extrem wichtiger Schritt ist die Tomcat-Config von JIRA (ist standardmäßig /opt/atlassian/jira/conf/server.xml. Dort muss bei dem Setup mit Apache Proxy der proxyName und proxyPort angegeben werden, damit man keine XSRF Fehler bekommt, wenn man über den Hostname Issues erstellt.

proxyName="{your server's hostname}"
proxyPort="80" 

MySQL Optimierung

Atlassian hat auf dieser Seite einige Flags erklärt, mit der man die MySQL Verbindung optimieren kann. Eines ist dabei, dass man setzen sollte, sonst stolpert JIRA's "Instance Health" report.

<pool-test-on-borrow>false</pool-test-on-borrow>

Vollständige dbconfig.xml:

<?xml version="1.0" encoding="UTF-8"?>
<jira-database-config>
  <name>defaultDS</name>
  <delegator-name>default</delegator-name>
  <database-type>mysql</database-type>
  <jdbc-datasource>
    <url>jdbc:mysql://localhost:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=storage_engine=InnoDB</url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <username>{your user}</username>
    <password>{your password}</password>
    <pool-min-size>20</pool-min-size>
    <pool-max-size>30</pool-max-size>
    <pool-max-wait>30000</pool-max-wait>
    <validation-query>select 1</validation-query>
    <min-evictable-idle-time-millis>60000</min-evictable-idle-time-millis>
    <time-between-eviction-runs-millis>300000</time-between-eviction-runs-millis>
    <pool-max-idle>20</pool-max-idle>
    <pool-remove-abandoned>true</pool-remove-abandoned>
    <pool-remove-abandoned-timeout>300</pool-remove-abandoned-timeout>
    <pool-test-while-idle>true</pool-test-while-idle>
    <pool-test-on-borrow>false</pool-test-on-borrow>
    <validation-query-timeout>3</validation-query-timeout>
  </jdbc-datasource>
</jira-database-config>

Setup ohne Turnkey/Webmin

Ein weiterer Weg ist hier beschrieben:

yum install http

In die Datei /etc/httpd/conf.d/jira.conf folgenden Inhalt:

# Send all web traffic to JIRA
ProxyPass           /   http://localhost:8080/
ProxyPassReverse    /   http://localhost:8080/

Apache neu starten und zum runlevel boot hinzufügen

sudo /etc/init.d/httpd start 
sudo chkconfig httpd on

Auch hier muss wieder der Eintrag in JIRA's server.xml ({JIRA home}/conf/server.xml) getätigt werden. Im 8080 connector port die beiden Parameter hinzufügen:

proxyName="{your server's hostname}"
proxyPort="80"

JIRA neu starten & es sollte jeglicher Traffic über 80 bei JIRA auf 8080 ankommen.