[Prunked.Net] Continuous Integration – Teil 4 – Nexus-Installation und -Konfiguration

Die einzige benötigte Abhängigkeit von Nexus, ein Java JDK, haben wir bereits in Teil 2 dieser Reihe installiert und können wir damit überspringen. Zur Installation von Nexus laden wir uns zunächst das aktuellste .tar.gz-Archiv herunter und entpacken es an einem entsprechend geeigneten Ort.

sudo su
cd /usr/local/
NEXUS_ARCHIVE=$(wget -nv --content-disposition https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-latest-bundle.tar.gz 2>&1 | awk '{print substr($6,2,length($6)-2);}')
NEXUS_DIR=$(echo | awk -v NEXUS_ARCHIVE="$NEXUS_ARCHIVE" '{print substr(NEXUS_ARCHIVE,0,length(NEXUS_ARCHIVE)-13);}')
tar -xvzf $NEXUS_ARCHIVE
ln -s $NEXUS_DIR nexus

Danach fügen wir über

echo "NEXUS_HOME=\"/usr/local/nexus\"" >> /etc/environment
source /etc/environment

das Nexus-Home-Verzeichnis zu den Umgebungsvariablen hinzu und lesen letztere neu ein.

Da und damit Nexus nicht unter Root laufen soll, legen wir uns einen neuen Benutzer an:

useradd nexus

Damit Nexus-Benutzer auch auf die von ihm benötigten Ordner und Dateien zugreifen kann, müssen wir ihm noch die Rechte dazu geben:

chown -R nexus:nexus nexus $NEXUS_DIR sonatype-work/nexus

Nun müssen wir Nexus-Startup-Script noch beibringen, unter welchen Benutzer es laufen soll. Zusätzlich konfigurieren in diesem auch gleich das Nexus-Home-Verzeichnis (ist für den nächsten Schritt zur Konfiguration als Service wichtig, also machen wir es direkt). Dazu

nano $NEXUS_DIR/bin/nexus

ausführen. Über STRG+W suchen wir nach NEXUS_HOME= und setzen den Wert auf „/usr/local/nexus“. Danach suchen wir nach #RUN_AS_USER=, entfernen das Kommentarzeichen und setzen den Wert auf „nexus“. Die beiden Zeilen sollten danach so aussehen:

NEXUS_HOME="/usr/local/nexus"
RUN_AS_USER="nexus"

Ein kleiner Test-Start von Nexus kann nicht schaden und sollte ohne größere Fehler klappen:

$NEXUS_DIR/bin/nexus console

Nach kurzer Zeit sollte Nexus auf IP:8081/nexus verfügbar sein (Benutzername: admin, Passwort: admin123).

Als nächstes richten wir Nexus als Service ein, damit er bei einem Neustart mitgestartet wird. Dazu beenden wir den Konsolenmodus mittels STRG+C und führen folgendes aus:

cd /etc/init.d/
cp $NEXUS_HOME/bin/nexus .
chmod 755 nexus
chown root nexus
update-rc.d nexus defaults
service nexus start

Jetzt sollte noch die Checkliste nach der Installation (Post-Install Checklist) im Handbuch durchgelesen und durchgeführt werden (wobei der Punkt Configuring Nexus as a Service übersprungen werden kann, da wir diesen bereits vollzogen haben).

Danach ist die Installation von Nexus abgeschlossen. Die weitere Konfiguration geschieht über das Web-Interface.

Im Web-Interface als admin eingeloggt, klicken wir in Liste links unter Administration auf Server. Im sich öffnenden Konfigurationsdialog unter Security Settings wählen wir aus der Liste der Available Realms den Eintrag NuGet API-Key Realm aus, fügen ihn der Liste der Selected Realms hinzu und klicken auf Save.

Danach gehen wir in der linken Menüliste unter Repositories/Views auf Repositories. Hier sind bereits einige Einträge hinterlegt; für den späteren Verlauf legen wir uns über den Button Add… noch folgende zusätzliche Repositories an:

TypeRepository IDRepository NameProviderRemote Storage Location
proxynuget-galleryNuGet GalleryNuGethttps://www.nuget.org/api/v2
hostednuget-internal-releasesNuGet Internal Releases FeedNuGet
hostednuget-internal-snapshotsNuGet Internal Snapshots FeedNuGet

Nach Anlegen der Repositories findet ihr unter dem Reiter NuGet die jeweilige URL, unter der das Repository erreichbar ist sowie ggf. den API Key, über den das NuGet Package gepusht werden kann. Wichtig sind diese Informationen für die Konfiguration des Paketmanagers im Visual Studio oder von NuGet im Jenkins.

Damit ist auch die Erstkonfiguration von Nexus abgeschlossen.