Liberar espacio en Nexus Repository
Actualmente me encuentro trabajando(Ya no paso mucho tiempo desde que escribí el borrador) en un ambiente de integración continua que involucra Gitlab, Jenkins, SonarQube y Nexus (3), todo esto esta en un solo servidor y digamos que cada uno consume su porción de los recursos.
Los que mas disco duro consumen, son Jenkins y Nexus, en esta ocasión voy a explicar como libere casi 40GB en una instancia que pesaba 92GB.
Primero que nada decir que Nexus tiene una interfaz basada en Extjs, que en esta época la hace horrible a los ojos, mas aun la funcionalidad, en la cual no es posible eliminar imágenes de docker usando la multi selección, al menos por la interfaz de usuario es una tarea casi imposible.
Después de tratar de eliminar todas esas imagenes viejas por la interfaz durante 5 minutos, recordé que Nexus tiene una API REST y me decidí a leerla y jugar con los endpoints que tiene.
También pensé que alguien mas paso por lo mismo y googleando un poco encontré un post y un repositorio de Github en el que se tiene un utilidad de linea de comandos que me podría ayudar.
Descargamos lo necesario siguiendo las instrucciones del repositorio de github
wget https://s3.eu-west-2.amazonaws.com/nexus-cli/1.0.0-beta/linux/nexus-cli
./nexus-cli configure
./nexus-cli image ls
./nexus-cli image delete -keep 1 -name imagen
Después de esto NO se debería ver espacio liberado, ya que Nexus solo marca los archivos como candidatos a removerse, se debe entrar a la sección de administrador y crear una tarea de compactación del blob y ejecutarla.