GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer Nexus Repository Manager sur Ubuntu 20.04

Nexus est un référentiel géré qui fournit une plate-forme qui protège l'intégralité de votre cycle de vie de développement logiciel. Il vous permet de collecter, de gérer vos dépendances et facilite la distribution de vos logiciels. Il s'agit d'une source unique de tous les composants, fichiers binaires et artefacts de build. Il prend en charge Gradle, Ant, Maven et Ivy, et permet aux développeurs de gérer les composants via des fichiers binaires, des conteneurs, des assemblages et des produits finis. Vous pouvez également intégrer Nexus à vos systèmes d'utilisateur et d'authentification existants, tels que LDAP et Atlassian Crowd.

Dans ce tutoriel, nous allons vous montrer comment installer le gestionnaire de référentiel Nexus sur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur le serveur.

Mise en route

Avant de commencer, vous devrez mettre à jour vos packages système vers la dernière version. Vous pouvez les mettre à jour à l'aide de la commande suivante :

apt-get update -y

Une fois votre serveur mis à jour, vous pouvez passer à l'étape suivante.

Installer Java

Nexus est basé sur Java, vous devrez donc installer Java version 8 sur votre système. Vous pouvez l'installer avec la commande suivante :

apt-get install openjdk-8-jdk -y

Une fois Java installé, vous pouvez vérifier la version installée de Java avec la commande suivante :

java -version

Vous devriez obtenir le résultat suivant :

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)

Une fois Java installé, vous pouvez passer à l'étape suivante.

Installer Nexus

Avant de commencer, vous devrez créer un utilisateur distinct pour exécuter Nexus. Vous pouvez le créer en exécutant la commande suivante :

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

Ensuite, permet à l'utilisateur Nexus d'exécuter tous les utilisateurs avec sudo sans mot de passe. Vous pouvez le faire en exécutant la commande suivante :

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

Ensuite, créez un répertoire pour Nexus et téléchargez la dernière version de Nexus avec la commande suivante :

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

Une fois le téléchargement terminé, extrayez le fichier téléchargé dans le répertoire /opt/nexus en exécutant la commande suivante :

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

Ensuite, définissez la propriété appropriée du répertoire nexus en exécutant la commande suivante :

chown -R nexus:nexus /opt/nexus

Ensuite, modifiez les nexus.vmoptions fichier de configuration et définissez la taille maximale de la mémoire :

nano /opt/nexus/bin/nexus.vmoptions

Définissez la taille de mémoire maximale de Java et remplacez "../sonatype-work" par "./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

Enregistrez et fermez le fichier puis modifiez le fichier nexus.rc et définissez l'exécution en tant qu'utilisateur :

nano /opt/nexus/bin/nexus.rc

Décommentez et modifiez la ligne suivante avec l'utilisateur nexus :

run_as_user="nexus"

Enregistrez et fermez le fichier puis démarrez le service Nexxus avec la commande suivante :

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

Ensuite, vérifiez le Nexus avec la commande suivante :

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

Vous devriez obtenir le résultat suivant :

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

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

À ce stade, Nexus est démarré et écoute sur le port 8081. Vous pouvez le vérifier avec la commande suivante :

ss -altnp | grep 8081

Vous devriez obtenir le résultat suivant :

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

Ensuite, arrêtez le service Nexus avec la commande suivante :

/opt/nexus/bin/nexus stop

Créer un fichier de service Systemd pour Nexus

Ensuite, vous devrez créer un fichier de service systemd pour gérer le service Nexus. Vous pouvez le créer avec la commande suivante :

nano /etc/systemd/system/nexus.service

Ajoutez les lignes suivantes :

[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

Enregistrez et fermez le fichier puis rechargez le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarrez le service Nexus et activez-le au redémarrage du système avec la commande suivante :

systemctl start nexus
systemctl enable nexus

Vous pouvez également vérifier l'état du service Nexus à l'aide de la commande suivante :

systemctl status nexus

Vous devriez obtenir le résultat suivant :

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

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Configurer Nginx en tant que proxy inverse pour Nexus

Ensuite, vous devrez installer Nginx et configurer Nginx en tant que proxy inverse. Tout d'abord, installez les packages Nginx avec la commande suivante :

apt-get install nginx -y

Une fois le Nginx installé, créez un fichier de configuration d'hôte virtuel Nginx avec la commande suivante :

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

Ajoutez les lignes suivantes :

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

Enregistrez et fermez le fichier puis vérifiez le fichier de configuration Nginx avec la commande suivante :

nginx -t

Vous devriez obtenir le résultat suivant :

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

Enfin, redémarrez le service Nginx pour appliquer les modifications :

systemctl restart nginx

Vous pouvez également vérifier l'état du Nginx avec la commande suivante :

systemctl status nginx

Vous devriez obtenir le résultat suivant :

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

Accéder à l'interface Web Nexus

Avant d'accéder à l'interface utilisateur Web Nexus, imprimez le mot de passe administrateur Nexus avec la commande suivante :

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

Vous devriez obtenir le résultat suivant :

b7c899cf-c6d3-4d11-a4cb-9a44e5d1787e

Maintenant, ouvrez votre navigateur Web et accédez à l'interface utilisateur Web Nexus à l'aide de l'URL http://nexus.example.com . Vous serez redirigé vers la page suivante :

Maintenant, cliquez sur Connexion bouton. Vous serez redirigé vers la page de connexion Nexus :

Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Connexion bouton. Vous devriez voir la page de configuration de Nexus :

Cliquez sur Suivant bouton pour continuer. Vous devriez voir la page suivante :

Définissez votre nouveau mot de passe et cliquez sur Suivant bouton. Vous devriez voir la page suivante :

Sélectionnez l'option "Activer l'accès anonyme" et cliquez sur Suivant bouton. Vous devriez voir la page suivante :

Cliquez sur Terminer pour terminer la configuration et cliquez sur le bouton Setting gear icône. Vous devriez voir le tableau de bord du référentiel Nexus :

Conclusion

Toutes nos félicitations! vous avez installé avec succès le gestionnaire de référentiel Nexus avec Nginx en tant que proxy inverse sur le serveur Ubuntu 20.04. N'hésitez pas à me demander si vous avez des questions.


Ubuntu
  1. Comment installer et configurer Redis sur Ubuntu 18.04

  2. Comment installer et configurer Redmine sur Ubuntu 18.04

  3. Comment installer et configurer Samba sur Ubuntu 18.04

  4. Comment installer et configurer Redis sur Ubuntu 20.04

  5. Comment installer et configurer Jenkins sur Ubuntu 20.04

Comment installer et configurer Cacti sur Ubuntu 20.04

Comment installer et configurer Git sur Ubuntu 20.04

Comment installer et configurer OpenVAS 9 sur Ubuntu

Comment installer et configurer le serveur VNC sur Ubuntu 20.04

Comment installer et configurer Elasticsearch sur Ubuntu 20.04

Comment installer et configurer Nextcloud sur Ubuntu 20.04