Sonatype Nexus è un popolare gestore di repository utilizzato in tutto il mondo per la maggior parte dei componenti, dei binari e degli artefatti di build. Viene fornito con il supporto per l'ecosistema Java Virtual Machine (JVM), inclusi Gradle, Ant, Maven e Ivy.
Compatibile con strumenti standard tra cui Eclipse, IntelliJ, Hudson, Jenkins, Puppet, Chef, Docker, ecc., il repository Sonatype Nexus può gestire i componenti di sviluppo tramite la consegna di contenitori binari, assiemi e prodotti finiti.
In questo tutorial, ti forniremo una guida completa sulla configurazione della versione Sonatype Nexus Repository OSS su CentOS 7.
Installazione di Sonatype Nexus Repository OSS su CentOS 7
Prima di iniziare il tutorial, diamo un'occhiata ai requisiti minimi di sistema per l'esecuzione di Sonatype Nexus Repo.
Requisiti di sistema
- CPU minime:4, CPU consigliate:8+
- Minimo fisico/RAM sull'host 8 GB
1. Preinstallazione
Inizia con l'impostazione del nome host.
hostnamectl set-hostname nexus
Aggiorna il tuo sistema CentOS.
yum update -y
Installa Java usando il seguente comando:
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

Al termine dell'installazione, controlla la versione java per assicurarti di essere pronto per passare al passaggio successivo del download del Repo.
java -version

2. Scarica Nexus Repository Manager 3
Vai alla directory opt:
cd /opt
Copia l'ultimo URL del Repo dal sito Web ufficiale e quindi scaricalo utilizzando wget.
wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
Estrai il file tar.
tar -xvzf latest-unix.tar.gz
Dovresti vedere due directory, inclusi i file nexus e la directory dei dati nexus.
ls -lh

Rinomina le cartelle.
mv nexus-3.20.1-01 nexus
mv sonatype-work nexusdata

3. Imposta Utente/Autorizzazioni e Configurazioni
I. Aggiungi un utente per un servizio nexus.
useradd --system --no-create-home nexus
II. Imposta la proprietà per i file nexus e i dati nexus.
chown -R nexus:nexus /opt/nexus
chown -R nexus:nexus /opt/nexusdata
III. Modifica la configurazione del Nexus e imposta la directory dei dati personalizzata
Modifica "nexus.vmoptions".
vim /opt/nexus/bin/nexus.vmoptions
Cambia la directory dei dati.
-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
Salva ed esci dal file.

IV. Modifica l'utente per l'account del servizio nexus.
Modifica il file "nexus.rc".
vim /opt/nexus/bin/nexus.rc
Decommenta il parametro "run_as_user" e aggiungi un nuovo valore.
run_as_user="nexus"
V. Smetti di ascoltare le connessioni remote.
Dobbiamo modificare il file "nexus-default.properties".
vim /opt/nexus/etc/nexus-default.properties
Cambia application-host=0.0.0.0 in application-host=127.0.0.1.

VI. Configura il limite di file aperti dell'utente nexus.
vim /etc/security/limits.conf
Aggiungi i seguenti valori al file.
nexus - nofile 65536
Salva ed esci dal file.
4. Imposta Nexus come servizio di sistema
Crea il file del servizio Systemd in “/etc/systemd/system/”.
vim /etc/systemd/system/nexus.service
Aggiungi quanto segue al file.
[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
Ricarica sistemactl.
systemctl daemon-reload
Abilita il servizio all'avvio del sistema.
systemctl enable nexus.service
Avvia il servizio.
systemctl start nexus.service
Monitora il file di registro.
tail -f /opt/nexusdata/nexus3/log/nexus.log

Controlla la porta di servizio.
netstat -tunlp | grep 8081

5. Configura Nginx
Imposta repository epel.
yum install -y epel-release
Elenca i repository.
yum repolist
Installa Nginx.
yum install nginx
imposta nginx all'avvio del sistema
systemctl enable nginx
controlla lo stato di Nginx e avvia il servizio se il servizio non è in esecuzione.
systemctl status nginx
systemctl start nginx
6. Imposta i record DNS per i server.
Quindi vai al tuo gestore DNS e aggiungi un record per il tuo server.
A Domain Name Server IP
Qui abbiamo utilizzato la route 53 di AWS per configurare il nostro DNS.

7. Configura SSL utilizzando certbot
I. Installa prima i pacchetti certbot.
yum install certbot python2-certbot-nginx
II. Installa i certificati.
certbot --nginx
Chiederà alcune domande e inserirà e-mail, nome di dominio e input necessari come segue.

Al termine dell'installazione, apri nginx.conf.
vim /etc/nginx/nginx.conf
Puoi vedere la configurazione SSL di certbot.
III. Aggiungi il pass proxy
Aggiungi i seguenti contenuti a Blocchi posizioni.
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; }

Salva ed esci dal file.
Controlla la sintassi di nginx:
nginx -t
Riavvia Nginx:
systemctl restart nginx
8. Imposta le regole del firewall
Ora abilita l'accesso https a un IP pubblico specifico. Esegui il comando seguente.
firewall-cmd --permanent --zone=public --add-rich-rule=' rule family="ipv4" source address="123.44.8.180/32" port protocol="tcp" port="443" accept'
Se hai bisogno di aprire https al pubblico, esegui il comando seguente:
firewall-cmd --zone=public --permanent --add-service=https
Ricarica il firewall.
firewall-cmd --reload
9. Imposta la politica di SELinux per Nginx
setsebool -P httpd_can_network_connect 1
10. Naviga nel sito web utilizzando il tuo nome di dominio
eg: https://nexusrepo.fosslinux.com/

11. Accedi al server
Accedi con il nome utente predefinito come "admin". Esegui il comando sotto nel server e ottieni la password.
cat /opt/nexusdata/nexus3/admin.password

Dopo il primo accesso, dovresti vedere una finestra simile, come mostrato di seguito.
Fare clic su Avanti e impostare una nuova password per l'utente amministratore.

Ancora una volta, fai clic su Avanti e dovresti vedere la finestra "Configura accesso anonimo". Non abilitare l'accesso anonimo.

Fai clic sul pulsante Avanti e puoi vedere la configurazione completa.

Clicca sul traguardo.
Si tratta di installare Sonatype Nexus Repository OSS su CentOS 7.