Nexus Repository Manager unter Ubuntu 22.04 installieren

Nexus ist einer der beliebtesten Repository-Manager in der DevOps-Welt. Er ermöglicht es dir, Build-Artefakte zu speichern und abzurufen und bietet außerdem Funktionen, um Artefakte über CI- und IDE-Integrationstools wie Visual Studio und Jenkins zu pushen und zu ziehen.

Es gibt zwei Versionen von Nexus Repository Manager: Die kommerzielle Version und die Open-Source-Version. Er unterstützt so viele Formate wie PyPi, Docker, Yum, APT, Helm, npm, Go, R und viele mehr.

Wenn du Nexus als Repository verwendest, können deine Entwickler Pakete über einen zentralen Repository-Manager beziehen und verwalten.

In dieser Anleitung wird erklärt, wie man den Nexus Repository Manager auf einem Ubuntu 22.04 Server installiert. Diese Anleitung beinhaltet auch die Installation einiger Pakete wie Java OpenJDK und Nginx Webserver, der als Reverse Proxy verwendet wird.

Voraussetzungen

Bevor du beginnst, brauchst du die folgenden Voraussetzungen:

  • Einen Ubuntu 22.04 Server.
  • Einen Nicht-Root-Benutzer mit sudo/administrator.
  • Einen Domainnamen, der auf die IP-Adresse deines Ubuntu-Servers zeigt (für die Produktion).

Installation von Java OpenJDK 8

Der Nexus Repository Manager benötigt Java OpenJDK und JRE v8. Das Standard-Repository von Ubuntu stellt mehrere Java-Versionen zur Verfügung. Deshalb installierst du jetzt das Java OpenJDK und JRE v8 aus dem Ubuntu-Repository.

Bevor du ein Paket installierst, führe den folgenden apt-Befehl aus, um den Paketindex deines Repositories zu aktualisieren und aufzufrischen.

sudo apt update

Jetzt installierst du Java OpenJDK 8 mit dem unten stehenden apt-Befehl. Gib Y ein, wenn du gefragt wirst, ob du die Installation bestätigen willst und drücke ENTER, um fortzufahren.

sudo apt install openjdk-8-jdk

java installieren

Sobald Java installiert ist, überprüfe die Java-Version auf deinem System mit dem folgenden Befehl.

java -version

Du siehst die Ausgabe im folgenden Screenshot:

check java

System einrichten

Um Nexus zu installieren, musst du einen neuen Linux-Benutzer mit einer gültigen Shell anlegen und die maximale Anzahl der geöffneten Dateien für Hard- und Soft-Limits auf „65536“ setzen.

Führe den folgenden Befehl aus, um einen neuen dedizierten Benutzer für den Nexus mit dem Namen „nexus“ zu erstellen

sudo useradd -d /opt/nexus -s /bin/bash nexus
sudo passwd nexus

Neuen Benutzer hinzufügen

Als Nächstes setzt du das ulimit mit dem folgenden Befehl auf „65536„. Dies wirkt sich nur vorübergehend auf das System auf dem aktuellen System aus. Um es dauerhaft einzurichten, kannst du eine neue Konfigurationsdatei erstellen, was du im nächsten Schritt tun wirst.

ulimit -n 65536

Um ulimit dauerhaft einzurichten, erstelle eine neue Konfigurationsdatei „/etc/security/limits.d/nexus.conf“ mit dem Editor nano.

sudo nano /etc/security/limits.d/nexus.conf

Füge die folgende Konfiguration in die Datei ein. In diesem Beispiel richtest du für den bestimmten Benutzer „nexus“ ein Ulimit mit dem Wert „65536“ ein.

nexus - nofile 65536

Speichere die Datei und beende den Editor, wenn du fertig bist.

einrichten ulimit

Wenn alle Grundvoraussetzungen erfüllt und konfiguriert sind, kannst du den Nexus Repository Manager auf deinem Ubuntu-System installieren.

Nexus Repository Manager installieren

Der Nexus Repository Manager kann über das Distributionspaket installiert werden, das du von der offiziellen Sonatype-Downloadseite herunterladen kannst. Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste Version von Nexus v3.41.1. Jetzt lädst du das Nexus Repository Manager Distributionspaket herunter und konfigurierst die Nexus-Installation.

Lade das Nexus Repository Manager-Paket mit dem Befehl wget herunter (siehe unten). Wenn der Downloadvorgang abgeschlossen ist, siehst du die Datei „nexus-3.41.1-01-unix.tar.gz“ in deinem aktuellen Arbeitsverzeichnis.

wget https://download.sonatype.com/nexus/3/nexus-3.41.1-01-unix.tar.gz

Entpacke nun die Datei„nexus-3.41.1-01-unix.tar.gz“ mit dem unten stehenden tar-Befehl. Dabei solltest du zwei Verzeichnisse erhalten, das ’nexus-3.41.1-01‚ und das’sonatype-work‚.

Das Verzeichnis’nexus-3.41.1-01‚ ist das Hauptverzeichnis für das Nexus-Paket, und das Verzeichnis ’sonatype-work‘ ist das Hauptarbeitsverzeichnis für Nexus.

tar xzf nexus-3.41.1-01-unix.tar.gz

Verschiebe die extrahierten Verzeichnisse mit folgendem Befehl nach „/opt“. Das Verzeichnis des Nexus-Pakets ist dann „/opt/nexus“ und das Arbeitsverzeichnis von Nexus ist „/opt/sonatype-work„.

mv nexus-3.41.1-01 /opt/nexus
mv sonatype-work /opt/

Zum Schluss änderst du mit dem folgenden chown-Befehl die Eigentumsrechte an beiden Verzeichnissen auf den Benutzer und die Gruppe „nexus“.

chown -R nexus:nexus /opt/nexus /opt/sonatype-work

nexus herunterladen

Als Nächstes richtest du deine Nexus-Installation ein, indem du einige der Nexus-Konfigurationsdateien bearbeitest.

Öffne die Datei „/opt/nexus/bin/nexus.rc“ mit dem Editor nano.

sudo nano /opt/nexus/bin/nexus.rc

Entferne das Kommentarzeichen bei der Option„run_as_user“ und ändere den Wert in „nexus“. Mit dieser Konfiguration führst du die Nexus-Anwendung als Systembenutzer„nexus“ aus.

run_as_user="nexus"

Speichere die Datei und beende den Editor, wenn du fertig bist.

Als Nächstes öffnest du die Konfigurationsdatei „/etc/nexus/bin/nexus.vmoptions“ mit dem nano-Editor, um den maximalen Heap-Speicher für Nexus einzustellen.

sudo nano /etc/nexus/bin/nexus.vmoptions

Ändere in den folgenden Optionen den standardmäßigen maximalen Heap-Speicher für deine Nexus-Installation. Du kannst die Größe auf ‚1024m‚ ändern, je nachdem, wie viel Speicher du auf deinem Server hast.

-Xms1024m
-Xmx1024m
-XX:MaxDirectMemorySize=1024m

Speichere die Datei und beende den Editor, wenn du fertig bist.

Bearbeite nun die Konfigurationsdatei „/opt/sonatype-work/nexus3/etc/nexus.properties“ mit dem nano-Editor.

sudo nano /opt/sonatype-work/nexus3/etc/nexus.properties

Entferne das Kommentarzeichen bei der Option „application-host“ und ändere den Wert in „127.0.0.1„. Das bedeutet, dass du den Nexus auf localhost oder der IP-Adresse „127.0.0.1“ laufen lassen wirst.

application-host=127.0.0.1

Speichere die Datei und beende den Editor.

Jetzt hast du den Nexus Repository Manager heruntergeladen und konfiguriert. Als Nächstes wirst du eine systemd-Dienstdatei für Nexus einrichten.

Nexus als SystemD-Dienst starten

Bei einer Standardinstallation kann der Nexus Repository Manager manuell über den Binärbefehl „nexus“ im Verzeichnis „/opt/nexus/bin“ ausgeführt werden. Um die Verwaltung von Nexus zu vereinfachen, richtest du jedoch eine systemd-Dienstdatei für Nexus ein.

Wenn du Nexus mit der systemd-Dienstdatei startest, kannst du den Nexus-Prozess über den systemctl-Befehl verwalten.

Erstelle nun mit dem Editor nano eine neue Servicedatei„/etc/systemd/system/nexus.service„.

sudo /etc/systemd/system/nexus.service

Füge die folgende Konfiguration in die Datei ein.

[Unit]
Description=nexus service
After=network.target
[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
User=nexus
Restart=on-abort

[Install]
WantedBy=multi-user.target

Speichere die Datei und beende den Editor, wenn du fertig bist.

Als Nächstes führst du den folgenden Befehl aus, um den sytemd-Manager neu zu laden und eine neue Servicedatei für Nexus anzulegen.

sudo systemctl daemon-reload

Starte und aktiviere den „nexus.service“ mit dem folgenden systemctl-Befehl. Der Nexus Repository Manager wird nun unter der lokalen IP-Adresse 127.0.0.1 mit dem Standardport „8081“ gestartet. Außerdem wird der„nexus.service“ automatisch beim Systemstart ausgeführt.

sudo systemctl start nexus.service
sudo systemctl enable nexus.service

nexus service einrichten

Führe abschließend den folgenden Befehl aus, um den „nexus.service“ zu überprüfen und sicherzustellen, dass der Dienst läuft.

sudo systemctl status nexus.service

nexus service überprüfen

Wenn Nexus als systemd-Dienst läuft, kannst du jetzt einen Reverse Proxy für Nexus einrichten.

Nexus mit Reverse Proxy betreiben

Der Nexus Repository Manager läuft jetzt auf der lokalen IP-Adresse „127.0.0.1“ mit dem Standardport „8081“. Um ihn von außerhalb des Netzwerks zugänglich zu machen, verwendest du den Nginx Reverse Proxy, der auf Standard-HTTP/HTTPS-Ports läuft.

Führe den folgenden apt-Befehl aus, um den Nginx-Webserver auf deinem Ubuntu-System zu installieren. Wenn du aufgefordert wirst, die Installation zu bestätigen, gib Y ein und drücke ENTER, um fortzufahren.

sudo apt install nginx

nginx installieren

Sobald Nginx installiert ist, führe den folgenden systemctl-Befehl aus, um den nginx-Dienst zu überprüfen und zu bestätigen. Du solltest sehen, dass der nginx-Dienst aktiviert ist und beim Systemstart automatisch ausgeführt wird. Und der Status des nginx-Dienstes lautet „running“.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

nginx prüfen

Als Nächstes erstellst du mit dem nano-Editor eine neue Serverblock-Konfiguration„/etc/nginx/sites-available/nexus„.

sudo nano /etc/nginx/sites-available/nexus

Füge die folgende Nginx-Konfiguration in die Datei ein und achte darauf, dass du den Domainnamen änderst.

upstream nexus3 {
  server 127.0.0.1:8081;
}
server {
listen 80;
server_name nexus.hwdomain.io;

location / {
proxy_pass http://nexus3/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;

proxy_redirect off;
}
}

Speichere die Datei und beende den Editor.

Als Nächstes führst du den folgenden Befehl aus, um die Serverblockkonfiguration für Nexus zu aktivieren, indem du einen Symlink von der Konfigurationsdatei in das Verzeichnis„sites-enabled“ erstellst. Überprüfe dann die Nginx-Konfiguration, um sicherzustellen, dass Nginx richtig konfiguriert ist.

sudo ln -s /etc/nginx/sites-available/nexus /etc/nginx/sites-enabled/
sudo nginx -t

Wenn deine Nginx-Konfiguration richtig konfiguriert ist, solltest du eine Meldung wie „test is successfull“ erhalten.

Zum Schluss führst du den folgenden Befehl aus, um den Nginx-Dienst neu zu starten und die neue Serverblockkonfiguration für Nexus anzuwenden.

sudo systemctl restart nginx

Du hast nun den Nginx-Webserver als Reverse-Proxy für den Nexus Repository Manager auf deinem Ubuntu-Rechner eingerichtet. Du kannst nun über deinen Domainnamen auf deine Nexus-Installation zugreifen.

nginx Reverse Proxy einrichten

Installation von Nexus Repository Manager

Jetzt läuft der Nexus Repository Manager unter dem Nginx Reverse Proxy. Und er ist über den Domainnamen deiner Installation erreichbar.

Öffne den Webbrowser und rufe den Domainnamen deiner Nexus-Installation auf (z. B.: http://nexus.hwdomain.io). Du solltest dann die Standard-Nexus-Seite wie unten sehen.

Klicke auf die Schaltfläche „Anmelden„, um dich im Nexus-Admin-Dashboard anzumelden.

Nexus-Anmeldung

Das Standard-Admin-Passwort für Nexus ist in der Datei„/opt/sonatype-work/nexus3/admin.properties“ mit dem Standardbenutzernamen admin gespeichert.

Gehe zurück zu deinem Terminal und führe den folgenden Befehl aus, um das Standardpasswort für den Nexus-Login zu erhalten. Kopiere dann das Standardpasswort für Nexus.

cat /opt/sonatype-work/nexus3/admin.properties

Als Nächstes gibst du den Benutzernamen admin ein und fügst das Passwort für Nexus ein. Klicke dann auf „Anmelden„.

Nexus-Anmeldung

Jetzt wird der Einrichtungsassistent von Nexus Repository Manager angezeigt. Klicke auf „Weiter„, um fortzufahren.

Einrichtungsassistenten nexus

Gib das neue sichere Passwort für deine Nexus-Installation ein und wiederhole es. Klicke dann wieder auf „Weiter„.

Passwort ändern

Für die Konfiguration des „Anonymen Zugriffs“. Wähle die Option „Anonymen Zugriff deaktivieren“ und klicke auf „Weiter„.

anonymen Zugang deaktivieren

Klicke nun auf „Fertigstellen„, um die Nexus-Konfiguration abzuschließen.

Einrichtung abgeschlossen

Nachdem die Nexus-Konfiguration abgeschlossen ist, siehst du das Nexus-Administrations-Dashboard. Auf dem Screenshot unten siehst du den Nexus Repository Manager.

Repository-Manager

Überprüfe abschließend deine Nexus-Installation über die Schaltfläche „Status prüfen“ oben. Vergewissere dich, dass der Systemstatus grün markiert ist, was bedeutet, dass die Installation und Konfiguration von Nexus erfolgreich war.

Systemstatus

Fazit

In diesem Lernprogramm hast du den Nexus Repository Manager auf einem Ubuntu 22.04 Server eingerichtet. Außerdem hast du den Nginx-Webserver als Reverse-Proxy für Nexus konfiguriert. Du kannst nun Repositories deiner Projekte zum Nexus Repository Manager hinzufügen und die Quellen deiner Projekte zentralisieren, damit du deine Anwendungen einfach erstellen und an Entwickler verteilen kannst.

Wenn du daran interessiert bist, Nexus in der Produktion einzusetzen, kannst du die Sicherheit für deinen Nexus mit SSL/TLS über Letsencrypt einrichten.

Das könnte dich auch interessieren …