Sonatype Nexus ist ein beliebter Repository-Manager, der weltweit für die meisten Komponenten, Binärdateien und Build-Artefakte verwendet wird. Es bietet Unterstützung für das Java Virtual Machine (JVM)-Ökosystem, einschließlich Gradle, Ant, Maven und Ivy.
Kompatibel mit Standardtools wie Eclipse, IntelliJ, Hudson, Jenkins, Puppet, Chef, Docker usw., Sonatype Nexus Repo kann Entwicklungskomponenten bis zur Bereitstellung für Binärcontainer, Baugruppen und fertige Produkte verwalten.
In diesem Tutorial stellen wir Ihnen eine umfassende Anleitung zum Einrichten der Sonatype Nexus Repository OSS-Version unter CentOS 7 zur Verfügung.
Sonatype Nexus Repository OSS auf CentOS 7 installieren
Bevor Sie mit dem Tutorial beginnen, sehen wir uns die Mindestsystemanforderungen für die Ausführung von Sonatype Nexus Repo an.
Systemanforderungen
- Mindest-CPUs:4, empfohlene CPUs:8+
- Physischer Mindestspeicher/RAM auf dem Host 8 GB
1. Vorinstallation
Beginnen Sie mit der Einstellung des Hostnamens.
hostnamectl set-hostname nexus
Aktualisieren Sie Ihr CentOS-System.
yum update -y
Installieren Sie Java mit dem folgenden Befehl:
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Überprüfen Sie nach Abschluss der Installation die Java-Version, um sicherzustellen, dass Sie bereit sind, mit dem nächsten Schritt des Herunterladens des Repos fortzufahren.
java -version
2. Laden Sie Nexus Repository Manager 3 herunter
Navigieren Sie zum Opt-Verzeichnis:
cd /opt
Kopieren Sie die neueste URL des Repos von der offiziellen Website und laden Sie sie dann mit wget herunter.
wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
Extrahieren Sie die tar-Datei.
tar -xvzf latest-unix.tar.gz
Sie sollten zwei Verzeichnisse sehen, einschließlich Nexus-Dateien und Nexus-Datenverzeichnis.
ls -lh
Benennen Sie die Ordner um.
mv nexus-3.20.1-01 nexus
mv sonatype-work nexusdata
3. Benutzer/Berechtigungen und Konfigurationen festlegen
I. Fügen Sie einen Benutzer für einen Nexus-Dienst hinzu.
useradd --system --no-create-home nexus
II. Legen Sie die Eigentumsrechte für Nexus-Dateien und Nexus-Daten fest.
chown -R nexus:nexus /opt/nexus
chown -R nexus:nexus /opt/nexusdata
III. Ändern Sie die Nexus-Konfiguration und legen Sie das benutzerdefinierte Datenverzeichnis fest
Bearbeiten Sie „nexus.vmoptions“.
vim /opt/nexus/bin/nexus.vmoptions
Ändern Sie das Datenverzeichnis.
-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=../nexusdata/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=../nexusdata/nexus3 -Dkaraf.log=../nexusdata/nexus3/log -Djava.io.tmpdir=../nexusdata/nexus3/tmp -Dkaraf.startLocalConsole=false
Speichern und beenden Sie die Datei.
IV. Ändern Sie den Benutzer für das Nexus-Dienstkonto.
Bearbeiten Sie die Datei „nexus.rc“.
vim /opt/nexus/bin/nexus.rc
Entkommentieren Sie den Parameter „run_as_user“ und fügen Sie einen neuen Wert hinzu.
run_as_user="nexus"
V. Stoppen Sie das Abhören von Remote-Verbindungen.
Wir müssen die Datei „nexus-default.properties“ ändern.
vim /opt/nexus/etc/nexus-default.properties
Ändern Sie application-host=0.0.0.0 in application-host=127.0.0.1.
VI. Konfigurieren Sie das Limit für offene Dateien des Nexus-Benutzers.
vim /etc/security/limits.conf
Fügen Sie der Datei die folgenden Werte hinzu.
nexus - nofile 65536
Speichern und die Exit-Datei.
4. Legen Sie Nexus als Systemdienst fest
Erstellen Sie die Systemd-Dienstdatei in „/etc/systemd/system/“.
vim /etc/systemd/system/nexus.service
Fügen Sie der Datei Folgendes hinzu.
[Unit] Description=Nexus Service After=syslog.target network.target [Service] Type=forking LimitNOFILE=65536 ExecStart=/opt/nexus/bin/nexus start ExecStop=/opt/nexus/bin/nexus stop User=nexus Group=nexus Restart=on-failure [Install] WantedBy=multi-user.target
Systemctl neu laden.
systemctl daemon-reload
Dienst beim Systemstart aktivieren.
systemctl enable nexus.service
Dienst starten.
systemctl start nexus.service
Überwachen Sie die Protokolldatei.
tail -f /opt/nexusdata/nexus3/log/nexus.log
Überprüfen Sie den Serviceport.
netstat -tunlp | grep 8081
5. Nginx einrichten
Epel-Repositories einrichten.
yum install -y epel-release
Listen Sie die Repositories auf.
yum repolist
Nginx installieren.
yum install nginx
setze nginx beim Systemstart
systemctl enable nginx
Überprüfen Sie den Status von Nginx und starten Sie den Dienst, wenn der Dienst nicht ausgeführt wird.
systemctl status nginx
systemctl start nginx
6. Legen Sie DNS-Einträge für die Server fest.
Gehen Sie dann zu Ihrem DNS-Manager und fügen Sie einen A-Eintrag für Ihren Server hinzu.
A Domain Name Server IP
Hier haben wir AWS Route 53 verwendet, um unser DNS einzurichten.
7. Konfigurieren Sie SSL mit certbot
I. Installieren Sie zuerst certbot-Pakete.
yum install certbot python2-certbot-nginx
II. Zertifikate installieren.
certbot --nginx
Es werden einige Fragen gestellt und E-Mail, Domainname und erforderliche Eingaben wie folgt eingegeben.
Nachdem die Installation abgeschlossen ist, öffnen Sie nginx.conf.
vim /etc/nginx/nginx.conf
Sie können die SSL-Konfiguration von certbot sehen.
III. Proxy-Pass hinzufügen
Fügen Sie die folgenden Inhalte zu Standortblöcken hinzu.
location / { proxy_pass "http://127.0.0.1:8081"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Ssl on; proxy_read_timeout 300; proxy_connect_timeout 300; }
Speichern und beenden Sie die Datei.
Überprüfen Sie die nginx-Syntax:
nginx -t
Starten Sie Nginx neu:
systemctl restart nginx
8. Legen Sie Firewall-Regeln fest
Aktivieren Sie nun den https-Zugriff auf eine bestimmte öffentliche IP. Führen Sie den folgenden Befehl aus.
firewall-cmd --permanent --zone=public --add-rich-rule=' rule family="ipv4" source address="123.44.8.180/32" port protocol="tcp" port="443" accept'
Wenn Sie https öffentlich öffnen müssen, führen Sie den folgenden Befehl aus:
firewall-cmd --zone=public --permanent --add-service=https
Laden Sie die Firewall neu.
firewall-cmd --reload
9. SELinux-Richtlinie für Nginx einrichten
setsebool -P httpd_can_network_connect 1
10. Durchsuchen Sie die Website mit Ihrem Domainnamen
eg: https://nexusrepo.fosslinux.com/
11. Melden Sie sich beim Server an
Melden Sie sich mit dem Standardbenutzernamen als „admin“ an. Führen Sie den folgenden Befehl auf dem Server aus und erhalten Sie das Passwort.
cat /opt/nexusdata/nexus3/admin.password
Nach der ersten Anmeldung sollten Sie ein ähnliches Fenster sehen, wie unten gezeigt.
Klicken Sie auf Weiter und richten Sie ein neues Passwort für den Admin-Benutzer ein.
Klicken Sie erneut auf Weiter, und Sie sollten das Fenster „Anonymen Zugriff konfigurieren“ sehen. Aktivieren Sie keinen anonymen Zugriff.
Klicken Sie auf die Schaltfläche Weiter, und Sie können die vollständige Einrichtung sehen.
Klicken Sie auf Beenden.
Das ist alles über die Installation des Sonatype Nexus Repository OSS auf Ihrem CentOS 7.