Atlassian FishEye 2.4.3 installieren

Atlassian FishEye ist ein besonders cooles Tool, um seinen Projekt-Sourcecode direkt in seinen JIRA-Projekten angezeigt zu bekommen. Völlig faszinierend finde ich, das man eine wunderbare Diff-Übersicht hat und Links zu einzelnen Codezeilen verschicken kann. Aus diesem Grund habe ich mich dafür entschieden, selbst FishEye für meine Git-Repositories in Zusammenhang mit JIRA einzusetzen. Wie ich es installiert habe, erfahrt ihr hier.

Damit FishEye mit einem Git-Repository funktioniert, muss auf dem Server Git Version 1.6 oder höher installiert sein. Welcher Git Version installiert ist, erfährt man über das Terminal mit git --version. Auf meinem Virtual Server läuft Debian Lenny, welches zur Zeit über die Paketverwaltung (apt-get) nur Git Version 1.5.6.5 anbietet. Aus diesem Grund muss man sich selbst um die Aktualisierung kümmern.

Git Version manuell aktualisieren

Befehle:

1
2
3
4
5
6
7
8
9
10
11
sudo su
cd /tmp
mkdir git
cd ./git
wget http://kernel.org/pub/software/scm/git/git-1.7.3.3.tar.bz2
tar xfvj git-1.7.3.3.tar.bz2
cd ./git-1.7.3.3
apt-get install curl libssl-dev tk
./configure
make install
rm -Rf /tmp/git

Bedeutung:

  1. Super-User Rechte holen
  2. In das temporäre Verzeichnis wechseln
  3. Temporären Git-Ordner erstellen
  4. In den temporären Git-Ordner wechseln
  5. Aktuelles Git-Archiv downloaden
  6. Git-Archiv entpacken
  7. In das entpackte Archiv wechseln
  8. Für die Git-Installation fehlende Bibliotheken herunterladen
  9. Konfiguration für die Installation erstellen
  10. Git installieren
  11. Temporäres Git-Verzeichnis löschen

Wenn wir nun git --version eingeben, dann wird uns immer noch angezeigt, dass wir Version 1.5.6.5 verwenden. Wenn Git nämlich zuvor über apt-get install git-core installiert wurde, dann haben wir jetzt zwei Git-Versionen installiert. Einmal im Ordner /usr/bin und einmal im Ordner /usr/local/bin. Die Debian Paketverwaltung installiert die Programme standardmäßig immer in /usr/bin und da Git, zum Zeitpunkt als wir unser Terminal (unsere bash) gestartet haben, nur in /usr/bin installiert war, hat unsere Kommandozeile (bash) noch diese alte Referenz. Wenn wir eine neue bash aufmachen (dazu einfach den Befehl bash im Terminal eingeben), dann wird uns git --version die Version aus /usr/local/bin anzeigen, welche die Versionsnummer 1.7.3.3 trägt und damit aktueller ist als 1.6 (welches für FishEye benötigt wird). Wenn das bis hierhin geklappt hat, dann können wir getrost die über die Paketverwaltung installierte Git-Version mit dem Befehl apt-get remove git-core löschen.

FishEye-Benutzer anlegen

Aus Sicherheitsgründen sollte FishEye nicht vom root-Benutzer ausgeführt werden. Deshalb werden wir einen neuen Benutzer namens fisheye-user anlegen, der sich nicht über ein Passwort am Server anmelden kann sondern nur über ein Schlüsselpaar.

Ich gehe davon aus, dass die Git-Repositories ebenfalls von einem eigenem Benutzer (namens gituser) verwaltet werden und im Ordner /home/gituser/repos/ liegen. Außerdem gehe ich davon aus, dass die Public Keys der Benutzer, die Zugriff auf die Git-Repositories haben sollen, in der Datei /home/gituser/.ssh/authorized_keys hinterlegt sind.

Befehle:

1
2
3
4
sudo adduser --shell /bin/bash --disabled-password fisheye-user
sudo –i
sudo -H -u fisheye-user ssh-keygen -t dss
sudo cat /home/fisheye-user/.ssh/id_dsa.pub >> /home/gituser/.ssh/authorized_keys

Bedeutung:

  1. Benutzer fisheye-user hinzufügen
  2. Login simulieren
  3. Schlüsselpaar mit „Digital Signature Algorithm“ erstellen
  4. Public-Key von fisheye-user dem gituser bekannt machen

FishEye herunterladen

Befehle:

1
2
3
4
5
sudo su
cd /opt
wget http://wpc.29c4.edgecastcdn.net/8029C4/downloads/software/fisheye/downloads/fisheye-2.4.3.zip
unzip fisheye-2.4.3.zip
rm -f fisheye-2.4.3.zip

Bedeutung:

  1. Super-User Rechte holen
  2. Ins /opt-Verzeichnis wechseln
  3. FishEye herunterladen
  4. FishEye entpacken
  5. FishEye-Archiv löschen

FishEye starten

Wenn FishEye über das Terminal gestartet wird, dann läuft FishEye nur solange bis die Sitzung beendet wird, d.h. wenn man das Terminal schließt, dann wird auch FishEye geschlossen. Um das zu verhinden, behelfen wir uns mit dem Programm screen.

Kurze Info zu screen:
Screen wird gestartet, indem man screen eingibt. Danach öffnet sich eine neue Shell. In dieser Shell können dann Programme gestarten werden. Um sich dann aus dieser Shell zurück zu ziehen, muss man Strg+A und danach D drücken. Dadurch wird die Shell in den Hintergrund geschickt, wodurch sie aber immer noch weiterläuft. Man nennt diesen Vorgang „detachen“. Um alle laufenden Screens anzuzeigen, wird der Befehl screen -ls verwendet. Jeder Screen braucht einen Sitzungsnamen, damit man ihn über screen -r Sitzungsname wieder nach vorne holen („attachen“) -und mit Strg+A und danach D wieder in den Hintergrund schicken kann.

In meinem Beispiel bekommt die Sitzung den namen „FishEye“. Zusätzlich wird die gesamte FishEye-Installation dem fisheye-user übergeben. Bevor die Screen-Sitzung gestartet werden kann, muss auch noch das SUID-Bit für screen gesetzt werden, damit die Fehlermeldung: Must run suid root for multiuser support. nicht auftritt.

Befehle:

1
2
3
sudo chown -R fisheye-user:fisheye-user /opt/fecru-2.4.3/
chmod u+s /usr/bin/screen 
sudo -u fisheye-user screen -mdS FishEye /opt/fecru-2.4.3/bin/run.sh

Bedeutung:

  1. FishEye-Installation an fisheye-user übergeben
  2. SUID-Bit für screen setzen
  3. FishEye-Sitzung in screen über den fisheye-user starten

Git-Repository in FishEye einrichten

FishEye kann, nach erfolgreichem Start, über die Adresse http://host.de:8060/ aufgerufen werden. In diesem Panel muss man nun einen Lizenzschlüssel eingeben und grundlegende Konfigurationen vornehmen. Man wird nach einigen Einstellungen aufgefordert ein Git-Repository anzugeben. Die URL für ein solches Repository könnte ssh://gituser@host.de:22/~/repos/example-repository.git lauten.

Atlassian FishEye mit Atlassian JIRA verbinden

Damit man Atlassian FishEye mit Atlassian JIRA verbinden kann, muss man in der FishEye-Administration (http://host.de:8060/admin/) die „Remote API“ freischalten. Das geht wie folgt:

  1. In die FishEye-Administrationsoberfläche einloggen
  2. Global Settings
  3. Server
  4. Allow remote API calls: On
  5. Site URL: http://host.de:8060/

Atlassian JIRA mit Atlassian FishEye verbinden

Natürlich muss man auch in JIRA die Verbindung zu Atlassian FishEye angeben. Das geht wie folgt:

  1. In die JIRA-Administrationsoberfläche einloggen
  2. Administration
  3. FishEye-Konfiguration
  4. Primäre Konfiguration bearbeiten
  5. FishEye-URL: http://host.de:8060/
  6. Aktualisieren

Man kann nun sein Git-Repository aus FishEye durch Angabe eines JIRA-Projektschlüssels in JIRA anzeigen lassen. Die Möglichkeiten, die man dadurch erhält, werden im FishEye Overview-Video gezeigt.

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.