GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare e configurare Nexus Repository Manager su Ubuntu 20.04

Nexus è un repository gestito che fornisce una piattaforma che protegge l'intero ciclo di vita dello sviluppo del software. Ti consente di raccogliere e gestire le tue dipendenze e semplifica la distribuzione del tuo software. È un'unica fonte di tutti i componenti, i binari e gli artefatti di build. Fornisce supporto per Gradle, Ant, Maven e Ivy e consente agli sviluppatori di gestire i componenti tramite binari, contenitori, assiemi e prodotti finiti. Puoi anche integrare Nexus con i tuoi utenti e sistemi di autenticazione esistenti come LDAP e Atlassian Crowd.

In questo tutorial, ti mostreremo come installare il gestore del repository Nexus su Ubuntu 20.04.

Prerequisiti

  • Un server che esegue Ubuntu 20.04.
  • Una password di root è configurata sul server.

Per iniziare

Prima di iniziare, dovrai aggiornare i pacchetti di sistema all'ultima versione. Puoi aggiornarli usando il seguente comando:

apt-get update -y

Una volta aggiornato il tuo server, puoi procedere al passaggio successivo.

Installa Java

Nexus è basato su Java, quindi dovrai installare Java versione 8 nel tuo sistema. Puoi installarlo con il seguente comando:

apt-get install openjdk-8-jdk -y

Una volta installato Java, puoi verificare la versione installata di Java con il seguente comando:

java -version

Dovresti ottenere il seguente output:

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)

Una volta installato Java, puoi procedere al passaggio successivo.

Installa Nexus

Prima di iniziare, dovrai creare un utente separato per eseguire Nexus. Puoi crearlo eseguendo il seguente comando:

useradd -M -d /opt/nexus -s /bin/bash -r nexus

Successivamente, consente all'utente nexus di eseguire tutti gli utenti con sudo senza alcuna password. Puoi farlo con eseguendo il seguente comando:

echo "nexus ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/nexus

Quindi, crea una directory per Nexus e scarica l'ultima versione di Nexus con il seguente comando:

mkdir /opt/nexus
wget https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.29.2-02-unix.tar.gz

Una volta completato il download, estrai il file scaricato nella directory /opt/nexus eseguendo il comando seguente:

tar xzf nexus-3.29.2-02-unix.tar.gz -C /opt/nexus --strip-components=1

Quindi, imposta la proprietà appropriata della directory nexus eseguendo il seguente comando:

chown -R nexus:nexus /opt/nexus

Quindi, modifica nexus.vmoptions file di configurazione e definire la dimensione massima della memoria:

nano /opt/nexus/bin/nexus.vmoptions

Imposta la dimensione massima della memoria Java e sostituisci "../sonatype-work" con "./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

Salva e chiudi il file, quindi modifica il file nexus.rc e definisci l'esecuzione come utente:

nano /opt/nexus/bin/nexus.rc

Decommenta e modifica la riga seguente con l'utente nexus:

run_as_user="nexus"

Salva e chiudi il file, quindi avvia il servizio Nexxus con il seguente comando:

sudo -u nexus /opt/nexus/bin/nexus start

Successivamente, verifica il Nexus con il seguente comando:

tail -f /opt/nexus/sonatype-work/nexus3/log/nexus.log

Dovresti ottenere il seguente output:

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

-------------------------------------------------

A questo punto, Nexus è avviato e in ascolto sulla porta 8081. Puoi verificarlo con il seguente comando:

ss -altnp | grep 8081

Dovresti ottenere il seguente output:

LISTEN    0         50                 0.0.0.0:8081             0.0.0.0:*        users:(("java",pid=5548,fd=795)) 

Quindi, arresta il servizio Nexus con il seguente comando:

/opt/nexus/bin/nexus stop

Crea un file di servizio Systemd per Nexus

Successivamente, dovrai creare un file di servizio systemd per gestire il servizio Nexus. Puoi crearlo con il seguente comando:

nano /etc/systemd/system/nexus.service

Aggiungi le seguenti righe:

[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

Salva e chiudi il file, quindi ricarica il demone systemd con il seguente comando:

systemctl daemon-reload

Quindi, avvia il servizio Nexus e abilitalo all'avvio al riavvio del sistema con il seguente comando:

systemctl start nexus
systemctl enable nexus

Puoi anche verificare lo stato del servizio Nexus utilizzando il seguente comando:

systemctl status nexus

Dovresti ottenere il seguente output:

? 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)

Una volta terminato, puoi procedere al passaggio successivo.

Configura Nginx come proxy inverso per Nexus

Successivamente, dovrai installare Nginx e configurare Nginx come proxy inverso. Innanzitutto, installa i pacchetti Nginx con il seguente comando:

apt-get install nginx -y

Una volta installato Nginx, crea un file di configurazione dell'host virtuale Nginx con il seguente comando:

nano /etc/nginx/conf.d/nexus.conf

Aggiungi le seguenti righe:

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;
    }
}

Salva e chiudi il file, quindi verifica il file di configurazione di Nginx con il seguente comando:

nginx -t

Dovresti ottenere il seguente output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Infine, riavvia il servizio Nginx per applicare le modifiche:

systemctl restart nginx

Puoi anche verificare lo stato di Nginx con il seguente comando:

systemctl status nginx

Dovresti ottenere il seguente output:

? 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.

Accedi all'interfaccia web di Nexus

Prima di accedere all'interfaccia utente web del Nexus, stampa la password dell'amministratore del Nexus con il seguente comando:

cat /opt/nexus/sonatype-work/nexus3/admin.password

Dovresti ottenere il seguente output:

b7c899cf-c6d3-4d11-a4cb-9a44e5d1787e

Ora apri il tuo browser web e accedi all'interfaccia utente web di Nexus utilizzando l'URL http://nexus.example.com . Verrai reindirizzato alla seguente pagina:

Ora, fai clic su Accedi pulsante. Verrai reindirizzato alla pagina di accesso di Nexus:

Fornisci il nome utente e la password dell'amministratore e fai clic su Accedi pulsante. Dovresti vedere la pagina di configurazione del Nexus:

Fare clic su Avanti pulsante per continuare. Dovresti vedere la seguente pagina:

Imposta la tua nuova password e fai clic su Avanti pulsante. Dovresti vedere la seguente pagina:

Seleziona l'opzione "Abilita accesso anonimo" e fai clic su Avanti pulsante. Dovresti vedere la seguente pagina:

Fai clic su Fine per completare la configurazione e fare clic sull'ingranaggio delle impostazioni icona. Dovresti vedere la dashboard del repository Nexus:

Conclusione

Congratulazioni! hai installato correttamente il gestore del repository Nexus con Nginx come proxy inverso sul server Ubuntu 20.04. Sentiti libero di chiedermi se hai domande.


Ubuntu
  1. Come installare e configurare Redis su Ubuntu 18.04

  2. Come installare e configurare Redmine su Ubuntu 18.04

  3. Come installare e configurare Samba su Ubuntu 18.04

  4. Come installare e configurare Redis su Ubuntu 20.04

  5. Come installare e configurare Jenkins su Ubuntu 20.04

Come installare e configurare Cacti su Ubuntu 20.04

Come installare e configurare Git su Ubuntu 20.04

Come installare e configurare OpenVAS 9 su Ubuntu

Come installare e configurare il server VNC su Ubuntu 20.04

Come installare e configurare Elasticsearch su Ubuntu 20.04

Come installare e configurare Nextcloud su Ubuntu 20.04