Cómo instalar el gestor de repositorios Nexus en Ubuntu 22.04

Nexus es uno de los gestores de repositorios más populares en el mundo DevOps. Te permite almacenar y recuperar artefactos de construcción y también proporciona funciones para empujar y tirar de artefactos a través de herramientas de integración CI e IDE, como Visual Studio y Jenkins.

Hay dos versiones del gestor de repositorios Nexus: La versión comercial y la versión de código abierto. Es compatible con muchos formatos, como PyPi, Docker, Yum, APT, Helm, npm, Go, R y muchos más.

Utilizar Nexus como repositorio, permite a tus desarrolladores obtener y gestionar paquetes en el gestor de repositorios centralizado, lo que también proporciona al equipo de desarrolladores una única fuente de verdad para cada paquete.

En este tutorial, explicaremos cómo instalar el Gestor de Repositorios Nexus en un servidor Ubuntu 22.04. Este tutorial también incluye la instalación de algunos paquetes como Java OpenJDK y el servidor web Nginx que se utilizará como proxy inverso.

Requisitos previos

Antes de empezar, necesitarás los siguientes requisitos:

  • Un servidor Ubuntu 22.04.
  • Un usuario no root con sudo/administrador activado.
  • Un nombre de dominio apuntando a la dirección IP de tu servidor Ubuntu (Para producción).

Instalación de Java OpenJDK 8

El Gestor de Repositorios Nexus requiere Java OpenJDK y JRE v8. El repositorio por defecto de Ubuntu proporciona varias versiones de Java, así que ahora instalarás Java OpenJDK y JRE v8 desde el repositorio de Ubuntu.

Antes de instalar cualquier paquete, ejecuta el siguiente comando apt para actualizar y refrescar el índice de paquetes de tus repositorios.

sudo apt update

Ahora, instala Java OpenJDK 8 mediante el siguiente comando apt. Introduce Y cuando se te pida que confirmes la instalación y pulsa ENTER para continuar.

sudo apt install openjdk-8-jdk

instalar java

Una vez instalado Java, verifica la versión de Java en tu sistema mediante el siguiente comando.

java -version

Verás el resultado en la siguiente captura de pantalla:

comprobar java

Configuración del sistema

Para instalar Nexus, tendrás que crear un nuevo usuario dedicado de Linux con un shell válido y también tendrás que configurar el máximo de archivos abiertos para los límites hard y soft a‘65536‘.

Ejecuta el siguiente comando para crear un nuevo usuario dedicado para el Nexus con el nombre‘nexus

sudo useradd -d /opt/nexus -s /bin/bash nexus
sudo passwd nexus

añadir nuevo usuario

A continuación, establece el ulimit en«65536» utilizando el siguiente comando. Esto sólo afectará temporalmente al sistema actual. Para hacerlo permanente, puedes crear un nuevo archivo de configuración que harás en el siguiente paso.

ulimit -n 65536

PARA configurar ulimit de forma permanente, crea un nuevo archivo de configuración‘/etc/security/limits.d/nexus.conf‘ utilizando el editor nano.

sudo nano /etc/security/limits.d/nexus.conf

Añade la siguiente configuración al archivo. En este ejemplo, estás configurando ulimit para el usuario específico‘nexus‘ con el valor‘65536‘.

nexus - nofile 65536

Guarda el archivo y sal del editor cuando hayas terminado.

configurar ulimit

Con todos los requisitos básicos establecidos y configurados, estás listo para instalar el Gestor de Repositorios Nexus en tu sistema Ubuntu.

Instalación del Gestor de Repositorios Nexus

El Gestor de Repositorios Nexus puede instalarse mediante el paquete de distribución que puedes descargar de la página oficial de descargas de Sonatype. En el momento de escribir esto, la última versión de Nexus es la v3.41.1. Ahora, descargarás el paquete de distribución del Gestor de Repositorios nexus y configurarás la instalación de nexus.

Descarga el paquete Gestor de Repositorios de Nexus mediante el comando wget como se indica a continuación. Una vez finalizado el proceso de descarga, verás el archivo ‘nexus-3.41.1-01-unix.tar.gz’ en tu directorio de trabajo actual.

wget https://download.sonatype.com/nexus/3/nexus-3.41.1-01-unix.tar.gz

Ahora extrae el archivo ‘nexus-3.41.1-01-unix.tar.gz’ mediante el siguiente comando tar. Y deberías obtener dos directorios, el ‘nexus-3. 41.1-01‘ y el‘sonatype-work‘.

El directorio ‘nexus-3.41.1-01‘ es el directorio principal del paquete Nexus, y el directorio ‘sonatype-work’ es el directorio de trabajo principal de Nexus.

tar xzf nexus-3.41.1-01-unix.tar.gz

A continuación, mueve esos directorios extraídos a ‘ /opt ‘ utilizando el siguiente comando. El directorio del paquete Nexus será ‘ /opt/nexus’ y el directorio de trabajo de Nexus será ‘/opt/sonatype-work‘.

mv nexus-3.41.1-01 /opt/nexus
mv sonatype-work /opt/

Por último, cambia la propiedad de ambos directorios al usuario y grupo ‘nexus’ mediante el siguiente comando chown.

chown -R nexus:nexus /opt/nexus /opt/sonatype-work

descargar nexus

A continuación, configurarás tu instalación de Nexus editando algunos de los archivos de configuración de Nexus.

Abre el archivo ‘/opt/nexus/bin/nexus.rc ‘ con el editor nano.

sudo nano /opt/nexus/bin/nexus.rc

Descomenta la opción‘run_as_user‘ y cambia el valor a ‘nexus’. Con esta configuración, ejecutarás la aplicación Nexus como usuario del sistema‘nexus‘.

run_as_user="nexus"

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, abre el archivo de configuración ‘/etc/nexus/bin/nexus.vmoptions’ utilizando el editor nano para configurar la memoria heap máxima para Nexus.

sudo nano /etc/nexus/bin/nexus.vmoptions

Cambia la memoria heap máxima por defecto para tu instalación de Nexus en las siguientes opciones. Puedes cambiar el tamaño a‘1024m‘ en función de la memoria que tengas en tu servidor.

-Xms1024m
-Xmx1024m
-XX:MaxDirectMemorySize=1024m

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora, edita el archivo de configuración ‘/opt/sonatype-work/nexus3/etc/nexus.properties‘ utilizando el editor nano.

sudo nano /opt/sonatype-trabajo/nexus3/etc/nexus.properties

Descomenta la opción ‘application-host’ y cambia el valor a‘127.0.0.1‘. Esto significa que ejecutarás el Nexus en localhost o dirección IP‘127.0.0.1‘.

application-host=127.0.0.1

Guarda el archivo y sal del editor.

Ya tienes el Gestor de Repositorios Nexus descargado y configurado. A continuación, configurarás un archivo de servicio systemd para Nexus.

Ejecutar Nexus como servicio SystemD

En una instalación por defecto, el Gestor de Repositorios Nexus puede ejecutarse manualmente mediante el comando binario ‘nexus’ que está disponible en el directorio ‘/opt/nexus/bin’. Pero, para facilitar la gestión de Nexus, deberás configurar un archivo de servicio systemd para Nexus.

Ejecutar Nexus con el archivo de servicio systemd, te permite gestionar el proceso nexus mediante el comando systemctl.

Ahora, crea un nuevo archivo de servicio‘/etc/systemd/system/nexus.service‘ utilizando el editor nano.

sudo /etc/systemd/system/nexus.service

Añade la siguiente configuración al archivo.

[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

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando para recargar el gestor sytemd y aplicar un nuevo archivo de servicio para Nexus.

sudo systemctl daemon-reload

Inicia y activa el «nexus.service» mediante el comando systemctl que se indica a continuación. El Gestor de Repositorios Nexus se iniciará ahora en la dirección IP local 127.0.0.1 con el puerto por defecto ‘8081’. Además, el‘nexus.service’ se ejecutará automáticamente al arrancar el sistema.

sudo systemctl start nexus.service
sudo systemctl enable nexus.service

configurar servicio nexus

Por último, ejecuta el siguiente comando para verificar el ‘nexus.service’ y asegurarte de que el servicio se está ejecutando.

sudo systemctl status nexus.service

comprobar servicio nexus

Con Nexus ejecutándose como un servicio systemd, ya puedes configurar un proxy inverso para Nexus.

Ejecutar Nexus con Proxy Inverso

El Gestor de Repositorios Nexus se ejecuta ahora en la dirección IP local ‘127.0.0.1’ con el puerto por defecto ‘8081’. Para hacerlo accesible desde fuera de la red, utilizarás el proxy inverso Nginx que se ejecutará en los puertos HTTP/HTTPS estándar.

Ejecuta el siguiente comando apt para instalar el servidor web Nginx en tu sistema Ubuntu. Cuando se te pida que confirmes la instalación, introduce Y y pulsa ENTER para continuar.

sudo apt install nginx

instalar nginx

Una vez instalado Nginx, ejecuta el siguiente comando systemctl para comprobar y verificar el servicio nginx. Deberías ver que el servicio nginx está habilitado y se ejecutará automáticamente al arrancar el sistema. Y el estado del servicio nginx es en ejecución.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

comprobar nginx

A continuación, crea una nueva configuración de bloque de servidor‘/etc/nginx/sites-available/nexus‘ utilizando el editor nano.

sudo nano /etc/nginx/sites-available/nexus

Añade la siguiente configuración de Nginx al archivo y asegúrate de cambiar el nombre del dominio.

upstream nexus3 {
  server 127.0.0.1:8081;
}
server {
listen 80;
server_name nexus.hwdomain.io;

location / {
proxy_pass http://nexus3/;
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;
}
}

Guarda el archivo y sal del editor.

A continuación, ejecuta el siguiente comando para activar la configuración del bloque de servidores para Nexus creando un enlace simbólico del archivo config al directorio‘sites-enabled’. A continuación, verifica la configuración de Nginx para asegurarte de que Nginx está configurado correctamente.

sudo ln -s /etc/nginx/sites-available/nexus /etc/nginx/sites-enabled/
sudo nginx -t

Si la configuración de Nginx es correcta, deberías obtener un mensaje de salida como «la prueba se ha realizado correctamente».

Por último, ejecuta el siguiente comando para reiniciar el servicio Nginx y aplicar la nueva configuración del bloque de servidor para Nexus.

sudo systemctl restart nginx

Ahora has configurado el servidor web Nginx como proxy inverso para el Gestor de Repositorios Nexus en tu máquina Ubuntu. Ahora puedes acceder a tu instalación de Nexus a través de tu nombre de dominio.

configurar proxy inverso nginx

Instalación del Gestor de Repositorios de Nexus

En este punto, el Gestor de Repositorios de Nexus se está ejecutando bajo el proxy inverso Nginx. Y es accesible a través del nombre de dominio de tu instalación.

Abre el navegador web y visita el nombre de dominio de tu instalación Nexus (es decir: http://nexus.hwdomain.io). Y deberías obtener la página por defecto de Nexus como se muestra a continuación.

Haz clic en el botón«Iniciar sesión» para acceder al panel de administración de Nexus.

inicio de sesión en nexus

La contraseña de administrador por defecto para Nexus se almacena en el archivo‘/opt/sonatype-work/nexus3/admin.properties‘ con el nombre de usuario por defecto admin.

Vuelve a tu terminal y ejecuta el siguiente comando para obtener la contraseña por defecto para iniciar sesión en Nexus. A continuación, copia la contraseña por defecto para Nexus.

cat /opt/sonatype-work/nexus3/admin.properties

A continuación, introduce el usuario admin y pega la contraseña para Nexus. A continuación, haz clic en«Iniciar sesión«.

inicio de sesión en nexus

Ahora aparecerá el asistente de configuración de Nexus Repository Manager. Haz clic en «Siguiente» para continuar.

asistentes de instalación nexus

Introduce la nueva contraseña segura para tu instalación de Nexus y repítelo. A continuación, vuelve a hacer clic en «Siguiente«.

cambiar contraseña

Para la configuración del «Acceso anónimo». Selecciona la opción«Desactivar acceso anónimo» y haz clic en «Siguiente«.

desactivar el acceso anónimo

Ahora haz clic en «Finalizar» para completar la configuración de Nexus.

configuración completada

Una vez completada la configuración de Nexus, verás el panel de administración de Nexus. En la siguiente captura de pantalla, puedes ver el Gestor de Repositorios de Nexus.

gestor de repositorios

Por último, verifica tu instalación de Nexus mediante el botón de comprobar estado de la parte superior. Asegúrate de que todos los estados del sistema están marcados en verde, lo que significa que la instalación y configuración de Nexus se han realizado correctamente.

estado del sistema

Conclusión

En este tutorial, has configurado el Gestor de Repositorios Nexus en un servidor Ubuntu 22.04. También has configurado el servidor web Nginx como proxy inverso para Nexus. Ahora puedes añadir repositorios de tus proyectos al gestor de repositorios de Nexus y centralizar el código fuente de tus proyectos para que puedas construir y distribuir fácilmente tus aplicaciones a los desarrolladores.

Si estás interesado en ejecutar Nexus en producción, puedes configurar la seguridad de tu nexus con SSL/TLS mediante Letsencrypt.

También te podría gustar...