CentOS 7 – Atlassian Confluence mit MySQL Datenbank

Atlassian_Confluence
Atlassian Confluence

In diesem Tutorial wird beschreiben wie man die kommerzielle Wiki-Software Confluence der Firma Atlassian auf einem CentOS 7 installiert. Da Atlassian Confluence derzeit nur Support für MySQL bis zur Version 5.6 anbietet werden wie diese verwenden. Der Betrieb von MariaDB wird offiziell nicht unterstützt. Eventuell kann dies zu Problemen im Betrieb führen. Andere Datenbanken z.B. PostgreSQL sind auch möglich.

Vorraussetzung für dieses Tutorial ist wieder eine CentOS 7 mit einer funktionierenden MySQL-Server-Installation der Version 5.6. Ein Tutorial dazu gibt es hier: CentOS 7 – MySQL 5.6, MySQL 5.7 oder aktueller installieren. Alternativ kann auch PostgreSQL verwendet werden eine Installationsanleitung gibt es hier: CentOS 7 – Aktuelle Version von PostgreSQL installieren. In diesem Tutorial beziehen wir uns aber auf die Verwendung von MySQL 5.6.

Installation von Confluence unter CentOS 7

Auf der Download-Seite von Atlassian können wir uns den passenden Installer für Confluence herrunterladen. Derzeit ist die Version 5.9.4 aktuell.

wget https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-5.9.4-x64.bin

Das Paket ist gut 500 MB groß. Nachdem der Download abgschlossen ist können wir diesen ausführen.

chmod +x atlassian-confluence-5.9.4-x64.bin
./atlassian-confluence-5.9.4-x64.bin

Bei der Installation von Confluence können wir die Express Variante wählen.

Unpacking JRE ...
Starting Installer ...
Feb 05, 2016 5:29:00 PM java.util.prefs.FileSystemPreferences$1 run
INFORMATION: Created user preferences directory.
Feb 05, 2016 5:29:00 PM java.util.prefs.FileSystemPreferences$2 run
INFORMATION: Created system preferences directory in java.home.

This will install Confluence 5.9.4 on your computer.
OK [o, Enter], Cancel [c]

Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (uses default settings) [1],
Custom Install (recommended for advanced users) [2, Enter],
Upgrade an existing Confluence installation [3]
1
See where Confluence will be installed and the settings that will be used.
Installation Directory: /opt/atlassian/confluence
Home Directory: /var/atlassian/application-data/confluence
HTTP Port: 8090
RMI Port: 8000
Install as service: Yes
Install [i, Enter], Exit [e]
i

Extracting files ...

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

Confluence ist installiert und bereits gestartet und lauscht intern auf Port 8090. Wir stoppen Confluence ersteinmal wieder um noch ein paar weitere Konfigurationen vorzunehmen.

service confluence stop

Nun sollten Confluence gestoppt sein und keine entsprechenden Java-Prozesse mehr laufen.

CentOS 7 Confluence Systemd Unit File erstellen

Bei der Installation konfiguriert Confluence noch das alte Initd System. Wir wollen dies aber sauber mit Systemd implementieren. Dazu benötigen wir einen Unit File. Dazu wird eine Datei unter /etc/systemd/system/confluence.service erstellt.

vim /etc/systemd/system/confluence.service

In diese fügen wir folgenden Inhalt ein.

[Unit]
Description=Atlassian Confluence Service
After=syslog.target network.target

[Service]
Type=forking
User=confluence
Group=confluence
Environment=JAVA_HOME=/opt/atlassian/confluence/jre/
ExecStart=/opt/atlassian/confluence/bin/start-confluence.sh
ExecStop=/opt/atlassian/confluence/bin/stop-confluence.sh
PIDFile=/opt/atlassian/confluence/work/catalina.pid

[Install]
WantedBy=multi-user.target

Die Benutzer und Gruppen wurden bereits automatisch bei der Installation von Confluence angelegt. Außerdem wird das im Installationspaket enthaltene Java-Environment genutzt.

Anschliessend laden wir den systemd daemon neu

systemctl daemon-reload

Nun fügen wir Confluence dem Autostart hinzu.

systemctl enable confluence.service
Created symlink from /etc/systemd/system/multi-user.target.wants/confluence.service to /etc/systemd/system/confluence.service.

Confluence können wir nun, wie bei CentOS 7 gewohnt, wie folgt starten und stoppen.

#start
systemctl start confluence.service

#stop
systemctl stop confluence.service

Confluence MySQL JDBC driver

Aus Lizenzrechtlichen Gründen ist der JDBC-Treiber für Confluence nicht im Installationspaket enthalten. Diesen können wir uns aber von der MySQL-Webseite downloaden.

wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.38.tar.gz

Das Paket muss noch entpackt werden.

tar xvzf mysql-connector-java-5.1.38.tar.gz

Zum Abschluss fügen wir die jar-Datei noch in das lib Verzeichnis der Confluence-Installation ein.

mv ./mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar /opt/atlassian/confluence/confluence/WEB-INF/lib/

Anschließend ist wieder ein Restart von Confluence nötig.

Zum Ende noch ein kleiner Funktionstest. Dazu rufen wir Confluence mit lynx auf und prüfen ob wir eine Ausgabe sehen. Falls lynx noch nicht installiert ist, holen wir das an dieser Stelle einfach nach.

yum install lynx -y

Nun rufen wir Confluence unter der Adresse http://127.0.0.1:8090 auf. Es sollte dann der Installationsdialog erscheinen.

Confluence Aufruf mit lynx
Confluence Aufruf mit lynx 127.0.0.1:8090

MySQL für Confluence einrichten

Bei der Einrichtung des MySQL-Server gehen wir gemäß der Dokumentation von Confluence vor.

Dazu erstellen wir die Datei /etc/my.cnf.d/atlassian.cnf mit folgenden Inhalt.

vim /etc/my.cnf.d/atlassian.cnf
[mysqld]

character-set-server=utf8
collation-server=utf8_bin

default-storage-engine=INNODB

max_allowed_packet=256M
innodb_log_file_size=256M

Danach den MySQL-Server neu starten.

systemctl restart mysql

MySQL User für Confluence anlegen

Auch hier verfahren wir wie in der oben verlinkten Dokumentation beschrieben.

Zuerst erstellen wir eine Datenbank

CREATE DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin;

dann einen Benutzer für diese Datenbank mit den passenden Berechtigungen.

GRANT ALL PRIVILEGES ON confluence.* TO 'confluenceuser'@'localhost' IDENTIFIED BY 'geheimesPasswort';

Diese Zugangsdaten werden später benötigt um die Installation von Confluence abzuschliessen.

In einen folgenden Artikel bescheibe ich die Installation von Atlassian Jira. Darauf aufbauend wird Apache httpd oder Nginx als Proxy davor konfiguriert um die Dienste nach Außen bereitzustellen und die Verbindung über SSL zu verschlüsseln.

3 Kommentare

  1. MySQL wird nicht empfohlen (im Produktiv Betrieb bei großen Unternehmen), sogar von Confluence wegen Instabiliäten & diversen Begrenzungn.
    Man soll eig. zu MariaDB Wechseln, daher wundert mich dein Eintrag gerade etwas.
    Ich selbst nutze es mit MariaDB aber ansonsten ein ganz guter Beitrag.

    1. Hallo,

      danke für diesen Hinweis, allerdings entnehme ich der Webseite von Confluence etwas anderes.

      https://confluence.atlassian.com/doc/supported-platforms-207488198.html

      Conflucene DB Support

      Der Betrieb von MariaDB wird daher nicht empfohlen bzw. nicht offiziell unterstützt. Man sollte daher MySQL statt MariaDB einsetzen.
      In CentOS / RHEL wurde seit Version 7 MySQL durch MariaDB ersetzt. Daher wird eine manuelle Installation in diesem Artikel vorgeschlagen.

  2. Perfekt!
    Danke für diesen Artikel und das Unit File. Freu mich schon auf Deinen Artikel mit dem Proxy-Settings insbesondere für Nginx.
    LG Johann

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.