Questa è una vecchia versione del documento!
Indice
Overview
Sonatype Nexus è un'applicazione sviluppata in Java e pubblicata mediante un motore Apache Velocity.
L'installazione su file system è su due percorsi principali:
- /opt/nexus1), che contiene l'installazione dell'applicazione vera e propria
- /opt/sonatype-work, che contiene le configurazioni e i dati del repository.
Durante l'installazione sul sistema è stato creato un utente nexus non privilegiato ad uso esclusivo di questo applicativo.
È stato creato un apposito script di tipo SystemV in /etc/init.d/nexus che permette l'inoltro dei comandi start/stop/ecc allo script di avvio distribuito normalmente con nexus.
La porta utilizzata dal servizio è la 8081 TCP.
Aggiornamento manuale dell'installazione
Quando una nuova versione viene rilasciata (comparirà una notifica nella home page del repository), le operazioni da eseguire sono le seguenti:
- verificare eventuali interventi necessari per l'aggiornamento dalla storia delle versioni e guida per gli aggiornamenti
- resettare eventuali modifiche intercorse alla configurazione del logging secondo quanto indicato qui (NB: le impostazioni di logging di default non sono mai state modificate finora)
- scaricare la nuova versione OSS (Open Source) LINK
- copiare il pacchetto sul server ecatonchiro.bo.priv
- fermare il servizio nexus:
service nexus stop
- scompattare il tarball in /opt
- sistemare i permessi di nexus-X.Y.Z e di sonatype-work (sono impostati “male” all'interno del tarball)
- ricreare il symlink /opt/nexus, in modo che punti alla nuova versione
- riavviare il servizio:
service nexus start
Aggiornamento automatico dell'installazione
È stato approntato sul server ecatonchiro uno script che automatizza i passaggi di spacchettamento dell'archivio della nuova versione, sistemazione delle ownership e ricreazione del symlink. Tale script è disponibile in /opt/install_new_nexus.sh e se ne riporta il codice nel seguito.
- install_new_nexus.sh
#!/bin/bash # Author: Alan Alberghini # Version: 1.0 set -e NEXUS_USER=nexus NEXUS_GROUP=root NEXUS_ROOT=/opt function usage () { cat << EOF Usage: install_new_nexus.sh new_nexus_tarball.tar.gz Scompatta l'archivio in /opt e assicura che i permessi siano coerenti sulla cartella /opt/nexus-X.Y.Z e /opt/sonatype-work. EOF } if [ $# -ne 1 ] then usage exit 1 fi if [ -z "$(service nexus | grep 'not running')" ] then echo "nexus is still running. Please stop it before running this script again" exit 2 fi ABS_TARBALL_PATH="$(readlink -f $1)" echo "Extracting tarball" (cd "$NEXUS_ROOT" && tar xf "$ABS_TARBALL_PATH") echo "Resetting ownerships" (cd "$NEXUS_ROOT" && chown -R "$NEXUS_USER":"$NEXUS_GROUP" nexus* sonatype-work) LAST_VERSION="$(ls "$NEXUS_ROOT" | grep nexus- | sort -r | head -1)" read -p "Found $LAST_VERSION as latest nexus version. Set it as primary nexus version?" -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]] then rm -f "$NEXUS_ROOT/nexus" ln -s "$NEXUS_ROOT/$LAST_VERSION" "$NEXUS_ROOT"/nexus fi echo "All done. Restart nexus to apply the update"
Gestione dei repository
Creazione repository per nuovo sito
Prima di effettuare il deploy di un artefatto che prevede anche la pubblicazione del suo sito autogenerato, è necessario predisporre il repository che lo conterrà sul nostro server Nexus, pena il fallimento della fase 'site-deploy' eseguita durante la build (se previsto).
Per effettuare questa operazione:
- Accedere a http://ecatonchiro.bo.priv:8081/nexus/ ed autenticarsi
- Andare nella sezione “Repositories”
- Cliccare sul bottone “Add”⇒“Hosted repository”
- Come “Repository ID” indicare la stringa <GROUPID.ARTIFACTID> del progetto
- Come “Repository Name” indicare SITE_<GROUPID.ARTIFACTID>
- Come “Provider” indicare “Site”
A questo punto, salvando le modifiche, verrà creato il repository di tipo site atto ad ospitare l'artefatto indicato col suo groupId e artifactId.