Nexus je spravované úložiště, které poskytuje platformu, která chrání celý váš životní cyklus vývoje softwaru. Umožňuje vám shromažďovat a spravovat vaše závislosti a usnadňuje distribuci vašeho softwaru. Je to jediný zdroj všech komponent, binárních souborů a artefaktů sestavení. Poskytuje podporu pro Gradle, Ant, Maven a Ivy a umožňuje vývojářům spravovat komponenty prostřednictvím binárních souborů, kontejnerů, sestav a hotového zboží. Nexus můžete také integrovat se svými stávajícími uživatelskými a ověřovacími systémy, jako jsou LDAP a Atlassian Crowd.
V tomto tutoriálu vám ukážeme, jak nainstalovat správce úložiště Nexus na Ubuntu 20.04.
Předpoklady
- Server se systémem Ubuntu 20.04.
- Na serveru je nakonfigurováno heslo uživatele root.
Začínáme
Než začnete, budete muset aktualizovat systémové balíčky na nejnovější verzi. Můžete je aktualizovat pomocí následujícího příkazu:
apt-get update -y
Jakmile je váš server aktualizován, můžete přejít k dalšímu kroku.
Instalovat Javu
Nexus je založen na Javě, takže do systému budete muset nainstalovat Javu verze 8. Můžete jej nainstalovat pomocí následujícího příkazu:
apt-get install openjdk-8-jdk -y
Jakmile je Java nainstalována, můžete ověřit nainstalovanou verzi Java pomocí následujícího příkazu:
java -version
Měli byste získat následující výstup:
openjdk version "1.8.0_282" OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08) OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
Jakmile je Java nainstalována, můžete přejít k dalšímu kroku.
Instalovat Nexus
Před spuštěním budete muset vytvořit samostatného uživatele pro spuštění zařízení Nexus. Můžete jej vytvořit spuštěním následujícího příkazu:
useradd -M -d /opt/nexus -s /bin/bash -r nexus
Dále umožňuje uživateli nexus spouštět všechny uživatele pomocí sudo bez jakéhokoli hesla. Můžete to udělat pomocí spuštěním následujícího příkazu:
echo "nexus ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/nexus
Dále vytvořte adresář pro zařízení Nexus a stáhněte si nejnovější verzi zařízení Nexus pomocí následujícího příkazu:
mkdir /opt/nexus
wget https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.29.2-02-unix.tar.gz
Po dokončení stahování rozbalte stažený soubor do adresáře /opt/nexus spuštěním následujícího příkazu:
tar xzf nexus-3.29.2-02-unix.tar.gz -C /opt/nexus --strip-components=1
Dále nastavte správné vlastnictví adresáře nexus spuštěním následujícího příkazu:
chown -R nexus:nexus /opt/nexus
Dále upravte nexus.vmoptions konfigurační soubor a definujte maximální velikost paměti:
nano /opt/nexus/bin/nexus.vmoptions
Nastavte maximální velikost paměti Java a nahraďte „../sonatype-work“ za „./sonatype-work“:
-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
Uložte a zavřete soubor, poté upravte soubor nexus.rc a definujte běh jako uživatel:
nano /opt/nexus/bin/nexus.rc
Odkomentujte a změňte následující řádek pomocí uživatele nexus:
run_as_user="nexus"
Uložte a zavřete soubor a poté spusťte službu Nexxus pomocí následujícího příkazu:
sudo -u nexus /opt/nexus/bin/nexus start
Dále ověřte Nexus pomocí následujícího příkazu:
tail -f /opt/nexus/sonatype-work/nexus3/log/nexus.log
Měli byste získat následující výstup:
2021-02-23 12:20:51,839+0000 INFO [jetty-main-1] *SYSTEM com.softwarementors.extjs.djn.servlet.DirectJNgineServlet - Servlet GLOBAL configuration: registryConfiguratorClass=
2021-02-23 12:20:51,853+0000 INFO [jetty-main-1] *SYSTEM com.softwarementors.extjs.djn.jscodegen.CodeFileGenerator - Creating source files for 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]649a69ca
2021-02-23 12:20:52,611+0000 INFO [jetty-main-1] *SYSTEM org.jboss.resteasy.plugins.validation.i18n - RESTEASY008550: Unable to find CDI supporting ValidatorFactory. Using default ValidatorFactory
2021-02-23 12:20:53,811+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - Initialized
2021-02-23 12:20:53,817+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Initialized
2021-02-23 12:20:53,852+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.handler.ContextHandler - Started [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 - Started [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 - Started @37529ms
2021-02-23 12:20:53,884+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer -
-------------------------------------------------
Started Sonatype Nexus OSS 3.29.2-02
-------------------------------------------------
V tomto okamžiku je Nexus spuštěn a naslouchá na portu 8081. Můžete to zkontrolovat pomocí následujícího příkazu:
ss -altnp | grep 8081
Měli byste získat následující výstup:
LISTEN 0 50 0.0.0.0:8081 0.0.0.0:* users:(("java",pid=5548,fd=795))
Dále zastavte službu Nexus pomocí následujícího příkazu:
/opt/nexus/bin/nexus stop
Vytvoření souboru Systemd Service pro Nexus
Dále budete muset vytvořit soubor služby systemd pro správu služby Nexus. Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/systemd/system/nexus.service
Přidejte následující řádky:
[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
Uložte a zavřete soubor a poté znovu načtěte démona systemd pomocí následujícího příkazu:
systemctl daemon-reload
Dále spusťte službu Nexus a povolte její spuštění při restartu systému pomocí následujícího příkazu:
systemctl start nexus
systemctl enable nexus
Stav služby Nexus můžete také ověřit pomocí následujícího příkazu:
systemctl status nexus
Měli byste získat následující výstup:
? nexus.service - nexus service
Loaded: loaded (/etc/systemd/system/nexus.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2021-02-23 12:22:49 UTC; 15s ago
Process: 6181 ExecStart=/opt/nexus/bin/nexus start (code=exited, status=0/SUCCESS)
Main PID: 6368 (java)
Tasks: 40 (limit: 4691)
Memory: 642.9M
CGroup: /system.slice/nexus.service
??6368 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -server -Dinstall4j.jvmDir=/usr/lib/jvm/java-8-openjdk-amd64/jre -Dexe4j.mo>
Feb 23 12:22:49 ubuntu2004 systemd[1]: Starting nexus service...
Feb 23 12:22:49 ubuntu2004 nexus[6181]: Starting nexus
Feb 23 12:22:49 ubuntu2004 systemd[1]: Started nexus service.
lines 1-13/13 (END)
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Nakonfigurujte Nginx jako reverzní proxy pro Nexus
Dále budete muset nainstalovat Nginx a nakonfigurovat Nginx jako reverzní proxy. Nejprve nainstalujte balíčky Nginx pomocí následujícího příkazu:
apt-get install nginx -y
Jakmile je Nginx nainstalován, vytvořte konfigurační soubor virtuálního hostitele Nginx pomocí následujícího příkazu:
nano /etc/nginx/conf.d/nexus.conf
Přidejte následující řádky:
upstream backend {
server 127.0.0.1:8081;
}
server {
listen 80;
server_name nexus.example.com;
location / {
proxy_pass http://backend/;
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;
}
}
Uložte a zavřete soubor a poté ověřte konfigurační soubor Nginx pomocí následujícího příkazu:
nginx -t
Měli byste získat následující výstup:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Nakonec restartujte službu Nginx, aby se změny projevily:
systemctl restart nginx
Stav Nginx můžete také ověřit pomocí následujícího příkazu:
systemctl status nginx
Měli byste získat následující výstup:
? nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-02-23 12:24:57 UTC; 4s ago
Docs: man:nginx(8)
Process: 7106 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 7107 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 7123 (nginx)
Tasks: 3 (limit: 4691)
Memory: 3.5M
CGroup: /system.slice/nginx.service
??7123 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
??7124 nginx: worker process
??7125 nginx: worker process
Feb 23 12:24:57 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Feb 23 12:24:57 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.
Přístup k webovému rozhraní Nexus
Před přístupem k webovému uživatelskému rozhraní zařízení Nexus si vytiskněte heslo správce zařízení Nexus pomocí následujícího příkazu:
cat /opt/nexus/sonatype-work/nexus3/admin.password
Měli byste získat následující výstup:
b7c899cf-c6d3-4d11-a4cb-9a44e5d1787e
Nyní otevřete webový prohlížeč a přejděte k webovému uživatelskému rozhraní zařízení Nexus pomocí adresy URL http://nexus.example.com . Budete přesměrováni na následující stránku:

Nyní klikněte na Přihlásit se knoflík. Budete přesměrováni na přihlašovací stránku zařízení Nexus:

Zadejte své administrátorské uživatelské jméno, heslo a klikněte na Přihlásit se knoflík. Měla by se zobrazit stránka nastavení zařízení Nexus:

Klikněte na Další tlačítko pro pokračování. Měli byste vidět následující stránku:

Nastavte si nové heslo a klikněte na Další knoflík. Měli byste vidět následující stránku:

Vyberte možnost „Povolit anonymní přístup“ a klikněte na tlačítko Další knoflík. Měli byste vidět následující stránku:

Klikněte na Dokončit dokončete nastavení a klikněte na Nastavení ozubeného kola ikona. Měli byste vidět řídicí panel úložiště Nexus:

Závěr
Gratulujeme! úspěšně jste nainstalovali správce úložiště Nexus s Nginx jako reverzní proxy na serveru Ubuntu 20.04. Pokud máte nějaké dotazy, neváhejte se mě zeptat.