Inhalt |
---|
Umgebung
Confluence und JIRA sind auf dem selben Linux installiert und über Apache mod_proxy erreichbar:
Port 80 und 443 sind über iptables freigeschaltet:
Codeblock |
---|
# iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT # iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT # ip6tables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT # ip6tables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT |
Der Webserver Apache leitet die Anfragen über mod_proxy an die Standalone Tomcats von JIRA und Confluence weiter:
Codeblock |
---|
<VirtualHost *:80> ServerName bknaus.de ServerAdmin benjamin@bknaus.de RewriteEngine On Redirect / https://www.bknaus.de/ RewriteCond %{HTTP_HOST} bknaus.de RewriteRule ^.[^\~]*$ https://%{SERVER_NAME}%{REQUEST_URI} [R] </VirtualHost> <VirtualHost *:443> ServerName bknaus.de ServerAdmin benjamin@bknaus.de SSLEngine on SSLHonorCipherOrder On SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH SSLCertificateFile /path/bknaus.de.crt SSLCertificateKeyFile /path/bknaus.de.key SSLCertificateChainFile /path/sub.class1.server.ca.pem.cer SSLCACertificateFile /path/ca.pem.cer # JIRA SSLProxyEngine on ProxyRequests off ProxyPreserveHost on ProxyPass /jira https://bknaus.de:8443/jira ProxyPassReverse /jira https://bknaus.de:8443/jira # Confluence SSLProxyEngine on ProxyRequests off ProxyPreserveHost on ProxyPass /wiki http://bknaus.de:8082/wiki ProxyPassReverse /wiki http://bknaus.de:8082/wiki ... </VirtualHost |
JIRA und Confluence lauschen auf eigenen Ports und kennen den Proxy:
Codeblock |
---|
# vi /confluence/conf/server.xml <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8082" minProcessors="5" maxProcessors="75" enableLookups="false" redirectPort="8443" acceptCount="10" debug="0" connectionTimeout="20000" useURIValidationHack="false" URIEncoding="UTF-8" scheme="https" proxyName="bknaus.de" proxyPort="443"/> # vi /jira/conf/server.xml <Connector port="8086" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" scheme="https" proxyName="bknaus.de" proxyPort="443" /> |
Die beiden Tomcats teilen sich ein Oracle JDK, MySQL und einen OpenLDAP Baum.
Das SSL Zertifikat ist im JDK Keytore importiert uns steht damit beiden Tomcats zur Verfügung.
Konfiguration
Anwendungsverknüpfung
Im ersten Schritt muss eine Anwendungsverknüpfung erstellt werden:
Hier gibt man die URL von JIRA an:
Für die Verknüpfung meldet man sich mit dem Admin Benutzer an:
Beide Anwendungen nutzen den selben OpenLDAP Baum:
Im nächsten Schritt muss noch die Authentifizierung konfiguriert werden:
Als IP-Muster gibt man 127.0.0.1 an, da beide Anwendungen auf dem selben System laufen:
Auch bei der Eingehenden Authentifizierung gibt man als IP-Muster 127.0.0.1 an:
Damit ist die Anwendungsverknüpfung zwischen Confluence und JIRA erstellt.
Gadgets
Damit JIRA Gadgets in Confluence Seiten eingebunden werden können, müssen die URL's freigeschaltet werden.
Dazu ermittelt man auf einem JIRA Dashboard die URL:
Hier kopiert man sich die URL des gewünschten Gadgets:
Diese URL muss dann in Confluence freigeschaltet werden:
Dieser Vorgang muss für jedes Gadgets wiederholt werden.
Verknüpfung
Vorgang
Ein JIRA Vorgang kann direkt in eine Confluence Seite eingebunden werden:
Hier kann nach dem Vorgang gesucht werden:
Der Vorgang wird dann z.B. so angezeigt:
Workbox
Die Confluence Workbox zeigt automatisch auch Aktivitäten aus JIRA an:
Gadget
Ist ein Gadget in Confluence freigeschaltet, kann es über andere Macros genutzt werden:
Hier wählt man das gewüschte Projekt oder den gewünschten Filter aus und entscheidet sich für einen Statistiktyp:
Das Ergebnis sieht dann z.B. so aus:
Filter
JIRA Filter können ebenfalls eingebunden werden. Dazu ermittelt man erst die URL des Filters als XML mit einem Rechtsklick auf:
Auf der Confluence Seite nutze man dann das JIRA Issues Macro:
Dort müssen dann die URL und die anzuzeigenden Spalten angegeben werden:
Das Ergebnis sieht dann z.B. so aus: