Strumenti Utente

Strumenti Sito


documentazione_3di_riservata:manuali_sysadmin:maven_repo

Questa è una vecchia versione del documento!


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:

  1. verificare eventuali interventi necessari per l'aggiornamento dalla storia delle versioni e guida per gli aggiornamenti
  2. 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)
  3. scaricare la nuova versione OSS (Open Source) LINK
  4. copiare il pacchetto sul server ecatonchiro.bo.priv
  5. fermare il servizio nexus:
    service nexus stop
  6. scompattare il tarball in /opt
  7. sistemare i permessi di nexus-X.Y.Z e di sonatype-work (sono impostati “male” all'interno del tarball)
  8. ricreare il symlink /opt/nexus, in modo che punti alla nuova versione
  9. 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:

  1. Accedere a http://ecatonchiro.bo.priv:8081/nexus/ ed autenticarsi
  2. Andare nella sezione “Repositories”
  3. Cliccare sul bottone “Add”⇒“Hosted repository”
  4. Come “Repository ID” indicare la stringa <GROUPID.ARTIFACTID> del progetto
  5. Come “Repository Name” indicare SITE_<GROUPID.ARTIFACTID>
  6. 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.

Riferimenti esterni

1)
symlink alla vera versione utilizzata
/data/attic/documentazione_3di_riservata/manuali_sysadmin/maven_repo.1451902327.txt.gz · Ultima modifica: 2017/09/08 10:59 (modifica esterna)