Nexus ist ein verwaltetes Repository, das eine Plattform bietet, die Ihren gesamten Softwareentwicklungslebenszyklus schützt. Es ermöglicht Ihnen, Ihre Abhängigkeiten zu sammeln und zu verwalten und erleichtert die Verteilung Ihrer Software. Es ist eine einzige Quelle für alle Komponenten, Binärdateien und Build-Artefakte. Es bietet Unterstützung für Gradle, Ant, Maven und Ivy und ermöglicht es Entwicklern, Komponenten über Binärdateien, Container, Baugruppen und fertige Produkte zu verwalten. Sie können Nexus auch in Ihre bestehenden Benutzer- und Authentifizierungssysteme wie LDAP und Atlassian Crowd integrieren.
In diesem Tutorial zeigen wir Ihnen, wie Sie den Nexus-Repository-Manager unter Ubuntu 20.04 installieren.
Voraussetzungen
- Ein Server mit Ubuntu 20.04.
- Ein Root-Passwort wird auf dem Server konfiguriert.
Erste Schritte
Bevor Sie beginnen, müssen Sie Ihre Systempakete auf die neueste Version aktualisieren. Sie können sie mit dem folgenden Befehl aktualisieren:
apt-get update -y
Sobald Ihr Server aktualisiert ist, können Sie mit dem nächsten Schritt fortfahren.
Installieren Sie Java
Nexus basiert auf Java, daher müssen Sie Java Version 8 auf Ihrem System installieren. Sie können es mit dem folgenden Befehl installieren:
apt-get install openjdk-8-jdk -y
Sobald Java installiert ist, können Sie die installierte Version von Java mit dem folgenden Befehl überprüfen:
Java-Version
Sie sollten die folgende Ausgabe erhalten:
openjdk-Version „1.8.0_282“OpenJDK-Laufzeitumgebung (Build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08)OpenJDK 64-Bit-Server-VM (Build 25.282-b08, gemischter Modus)
Sobald Java installiert ist, können Sie mit dem nächsten Schritt fortfahren.
Nexus installieren
Bevor Sie beginnen, müssen Sie einen separaten Benutzer erstellen, um Nexus auszuführen. Sie können es erstellen, indem Sie den folgenden Befehl ausführen:
useradd -M -d /opt/nexus -s /bin/bash -r nexus
Als nächstes erlaubt es dem Nexus-Benutzer, alle Benutzer mit sudo ohne Passwort auszuführen. Sie können dies tun, indem Sie den folgenden Befehl ausführen:
echo "nexus ALL=(ALL) NOPASSWD:ALL"> /etc/sudoers.d/nexus
Erstellen Sie als Nächstes ein Verzeichnis für Nexus und laden Sie die neueste Version von Nexus mit dem folgenden Befehl herunter:
mkdir /opt/nexus
wget https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.29.2-02-unix.tar .gz
Wenn der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei in das Verzeichnis /opt/nexus, indem Sie den folgenden Befehl ausführen:
tar xzf nexus-3.29.2-02-unix.tar.gz -C /opt/nexus --strip-components=1
Legen Sie als Nächstes die ordnungsgemäße Eigentümerschaft für das Nexus-Verzeichnis fest, indem Sie den folgenden Befehl ausführen:
chown -R nexus:nexus /opt/nexus
Bearbeiten Sie als Nächstes die nexus.vmoptions Konfigurationsdatei und definieren Sie die maximale Speichergröße:
nano /opt/nexus/bin/nexus.vmoptions
Maximale Java-Speichergröße festlegen und „../sonatype-work“ durch „./sonatype-work“ ersetzen:
-Xms1024m-Xmx1024m-XX:MaxDirectMemorySize=1024m-XX:LogFile=./sonatype-work/nexus3/log/jvm.log-XX:-OmitStackTraceInFastThrow-Djava.net.preferIPv4Stack=true-Dkaraf.home=. -Dkaraf.base=.-Dkaraf.etc=etc/karaf-Djava.util.logging.config.file=/etc/karaf/java.util.logging.properties-Dkaraf.data=./sonatype-work/nexus3- Dkaraf.log=./sonatype-work/nexus3/log-Djava.io.tmpdir=./sonatype-work/nexus3/tmp
Speichern und schließen Sie die Datei, bearbeiten Sie dann die Datei nexus.rc und definieren Sie die Ausführung als Benutzer:
nano /opt/nexus/bin/nexus.rc
Entkommentieren und ändern Sie die folgende Zeile mit nexus user:
run_as_user="nexus"
Speichern und schließen Sie die Datei und starten Sie dann den Nexxus-Dienst mit dem folgenden Befehl:
sudo -u nexus /opt/nexus/bin/nexus start
Als nächstes überprüfen Sie das Nexus mit dem folgenden Befehl:
tail -f /opt/nexus/sonatype-work/nexus3/log/nexus.log
Sie sollten die folgende Ausgabe erhalten:
2021-02-23 12:20:51,839+0000 INFO [jetty-main-1] *SYSTEM com.softwarementors.extjs.djn.servlet.DirectJNgineServlet - GLOBALE Konfiguration des Servlets:registrationConfiguratorClass=2021-02-23 12:20:51,853+0000 INFO [jetty-main-1] *SYSTEM com.softwarementors.extjs.djn.jscodegen.CodeFileGenerator – Erstellen von Quelldateien für APIs...2021-02-23 12:20:52,582+0000 INFO [jetty -main-1] *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - JAX-RS RuntimeDelegate:org.sona[email protected]649a69ca2021-02-23 12:20:52,611+0000 INFO [jetty-main-1] * SYSTEM org.jboss.resteasy.plugins.validation.i18n - RESTEASY008550:CDI, das ValidatorFactory unterstützt, kann nicht gefunden werden. Using default ValidatorFactory2021-02-23 12:20:53,811+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - Initialized2021-02-23 12:20:53,817+0000 INFO [jetty- main-1] *SYSTEM org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Initialized2021-02-23 12:20:53,852+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server. handler.ContextHandler - Gestartet [email protected]{Sonatype Nexus,/,file:///opt/nexus/public/,AVAILABLE}2021-02-23 12:20:53,883+0000 INFO [jetty-main-1] * SYSTEM org.eclipse.jetty.server.AbstractConnector – Gestartet [email protected]{HTTP/1.1, (http/1.1)}{0.0.0.0:8081}2021-02-23 12:20:53,884+0000 INFO [jetty- main-1] *SYSTEM org.eclipse.jetty.server.Server - Gestartet @37529ms2021-02-23 12:20:53,884+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty. JettyServer - ------------------------------------------------ -Sonatype Nexus OSS 3.29.2-02 gestartet---------------------------------------- ---------
An diesem Punkt wird Nexus gestartet und lauscht auf Port 8081. Sie können dies mit dem folgenden Befehl überprüfen:
ss -altnp | grep 8081
Sie sollten die folgende Ausgabe erhalten:
LISTEN 0 50 0.0.0.0:8081 0.0.0.0:* Benutzer:(("java",pid=5548,fd=795))
Stoppen Sie als Nächstes den Nexus-Dienst mit dem folgenden Befehl:
/opt/nexus/bin/nexus stop
Erstellen Sie eine Systemd-Dienstdatei für Nexus
Als Nächstes müssen Sie eine systemd-Dienstdatei erstellen, um den Nexus-Dienst zu verwalten. Sie können es mit dem folgenden Befehl erstellen:
nano /etc/systemd/system/nexus.service
Fügen Sie die folgenden Zeilen hinzu:
[Unit]Description=nexus serviceAfter=network.target[Service]Type=forkingLimitNOFILE=65536ExecStart=/opt/nexus/bin/nexus startExecStop=/opt/nexus/bin/nexus stopUser=nexusRestart=on-abort[Install ]WantedBy=multi-user.target
Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:
systemctl daemon-reload
Starten Sie als Nächstes den Nexus-Dienst und ermöglichen Sie ihm, beim Systemneustart mit dem folgenden Befehl zu starten:
systemctl Nexus starten
systemctl Nexus aktivieren
Sie können den Status des Nexus-Dienstes auch mit dem folgenden Befehl überprüfen:
Systemctl-Status-Nexus
Sie sollten die folgende Ausgabe erhalten:
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Konfigurieren Sie Nginx als Reverse-Proxy für Nexus
Als nächstes müssen Sie Nginx installieren und Nginx als Reverse-Proxy konfigurieren. Installieren Sie zuerst die Nginx-Pakete mit dem folgenden Befehl:
apt-get install nginx -y
Sobald Nginx installiert ist, erstellen Sie mit dem folgenden Befehl eine Konfigurationsdatei für den virtuellen Nginx-Host:
nano /etc/nginx/conf.d/nexus.conf
Fügen Sie die folgenden Zeilen hinzu:
Upstream-Backend { server 127.0.0.1:8081;}server { listen 80; server_name nexus.example.com; Standort / { Proxy_Pass http://backend/; Proxy_http_Version 1.1; Proxy_set_header Upgrade $http_upgrade; proxy_set_header Verbindung "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-Weiterleitung aus; }}
Speichern und schließen Sie die Datei und überprüfen Sie dann die Nginx-Konfigurationsdatei mit dem folgenden Befehl:
nginx -t
Sie sollten die folgende Ausgabe erhalten:
nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist oknginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich
Starten Sie abschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl startet nginx neu
Sie können den Status von Nginx auch mit dem folgenden Befehl überprüfen:
systemctl status nginx
Sie sollten die folgende Ausgabe erhalten:
Zugriff auf die Nexus-Weboberfläche
Drucken Sie vor dem Zugriff auf die Nexus-Webbenutzeroberfläche das Nexus-Administratorkennwort mit dem folgenden Befehl aus:
cat /opt/nexus/sonatype-work/nexus3/admin.password
Sie sollten die folgende Ausgabe erhalten:
b7c899cf-c6d3-4d11-a4cb-9a44e5d1787e
Öffnen Sie jetzt Ihren Webbrowser und greifen Sie über die URL http://nexus.example.com auf die Nexus-Webbenutzeroberfläche zu . Sie werden auf die folgende Seite weitergeleitet:
Klicken Sie nun auf Anmelden Taste. Sie werden zur Anmeldeseite von Nexus weitergeleitet:
Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf Anmelden Taste. Sie sollten die Nexus-Einrichtungsseite sehen:
Klicken Sie auf Weiter Schaltfläche, um fortzufahren. Sie sollten die folgende Seite sehen:
Legen Sie Ihr neues Passwort fest und klicken Sie auf Weiter Taste. Sie sollten die folgende Seite sehen:
Wählen Sie die Option "Anonymen Zugriff aktivieren" und klicken Sie auf Weiter Taste. Sie sollten die folgende Seite sehen:
Klicken Sie auf Fertig stellen , um die Einrichtung abzuschließen, und klicken Sie auf das Einstellrad Symbol. Sie sollten das Nexus-Repository-Dashboard sehen:
Schlussfolgerung
Herzliche Glückwünsche! Sie haben den Nexus-Repository-Manager mit Nginx erfolgreich als Reverse-Proxy auf dem Ubuntu 20.04-Server installiert. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.