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
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:
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 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.
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
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
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
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
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
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.
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.
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«.
Ahora aparecerá el asistente de configuración de Nexus Repository Manager. Haz clic en «Siguiente» para continuar.
Introduce la nueva contraseña segura para tu instalación de Nexus y repítelo. A continuación, vuelve a hacer clic en «Siguiente«.
Para la configuración del «Acceso anónimo». Selecciona la opción«Desactivar acceso anónimo» y haz clic en «Siguiente«.
Ahora haz clic en «Finalizar» para completar la configuración de Nexus.
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.
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.
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.