Nexus Update Version 2.14.0 vers 2.14.1

De EjnTricks

Cette mise à jour s'effectue sur l'installation décrite pour la version 2.14.0.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


System-Install-icon.png Download-icon.png Téléchargement et installation

#sudo wget -O /tmp/nexus-2.14.1-01-bundle.tar.gz https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.1-01-bundle.tar.gz
#sudo tar -C /var/opt/nexus -xzf /tmp/nexus-2.14.1-01-bundle.tar.gz


Icon-Configuration-Settings.png Déploiement

Il faut dans un premier temps organiser les binaires sous /var/opt/nexus/2.14.1.

#sudo mv /var/opt/nexus/nexus-2.14.1-01 /var/opt/nexus/2.14.1-01
#sudo chown -R nexus:nexus /var/opt/nexus/2.14.1-01
#sudo chmod -R go-rwx /var/opt/nexus/2.14.1-01

Les droits sont positionnés pour que seul le compte nexus puisse accéder aux fichiers.


Run-icon.png Script démarrage

Les modifications dans le script de démarrage, fichier /var/opt/nexus/2.14.1-01/bin/nexus, doivent permettre :

  • Spécifier l'utilisateur d'exécution;
  • Spécifier un emplacement spécifique pour le fichier "PID".

A noter que lors de l'exécution, si un compte est spécifié et différent de celui en cours d'exécution, le script de démarrage est redémarré avec le compte souhaité.

L'utilisateur d'exécution est sépcifié dans le paramètre RUN_AS_USER, et l'emplacement du fichier "PID" dans le paramètre PIDDIR.

# NOTE - This will set the user which is used to run the Wrapper as well as
#  the JVM and is not useful in situations where a privileged resource or
#  port needs to be allocated prior to the user being changed.
#RUN_AS_USER=
RUN_AS_USER=nexus

Et

# Location of the pid file.
#PIDDIR="."
PIDDIR="/run/nexus"

Cependant, le répertoire /run/nexus n'existe pas et le compte nexus n'a pas les droits d'écriture dans /run. Une erreur se produira donc lors de l'exécution, car le fichier "PID" ne pourra être créé. Le script de démarrage /var/opt/nexus/2.14.0-01/bin/nexus est donc modifié afin de forcer la création du répertoire. Pour rappel, comme il est exécuté avec le compte root d fait du service, il est tout à fait possible de créer le répertoire et de modifier les droits d'accès.

Au final, le script est modifié ainsi :

# NOTE - This will set the user which is used to run the Wrapper as well as
#  the JVM and is not useful in situations where a privileged resource or
#  port needs to be allocated prior to the user being changed.
#RUN_AS_USER=
RUN_AS_USER=nexus

# Application
APP_NAME="nexus"
APP_LONG_NAME="Nexus OSS"

# Priority at which to run the wrapper.  See "man nice" for valid priorities.
#  nice is only used if a priority is specified.
PRIORITY=

# Location of the pid file.
#PIDDIR="."
PIDDIR="/run/nexus"
if [ ! -d "$PIDDIR" ]; then
        mkdir -p "$PIDDIR"
        [ -z "$RUN_AS_USER" ] || chown "$RUN_AS_USER:$RUN_AS_USER" "$PIDDIR"
fi


Icon-log.png Fichiers log

Par défaut, les logs sont placés dans le répertoire logs de l’instance Nexus :

  • /var/opt/nexus/sonatype-work/nexus/logs/nexus.log
  • /var/opt/nexus/sonatype-work/nexus/logs/request.log
  • /var/opt/nexus/2.14.0-01/logs/wrapper.log

La définition de ces emplacements se situe dans différentes configurations.

  • Fichier /var/opt/nexus/2.14.1-01/conf/logback-access.xml pour le fichier /var/opt/nexus/sonatype-work/nexus/logs/request.log :
  <appender name="request.logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <File>${nexus-work}/logs/request.log</File>
    <Append>true</Append>
    <encoder class="org.sonatype.nexus.bootstrap.log.AccessPatternLayoutEncoder">
      <pattern>%clientHost %l %user [%date] "%requestURL" %statusCode %bytesSent %elapsedTime</pattern>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${nexus-work}/logs/request-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
      <maxHistory>90</maxHistory>
    </rollingPolicy>
  </appender>

  <appender-ref ref="request.logfile"/>
  • Fichier /var/opt/nexus/2.14.1-01/bin/jsw/conf/wrapper.conf pour le fichier /var/opt/nexus/2.14.0-01/logs/wrapper.log :
# Set up JSW logging
wrapper.logfile=logs/wrapper.log
wrapper.logfile.format=PM
wrapper.logfile.loglevel=INFO
wrapper.logfile.maxsize=10m
wrapper.logfile.maxfiles=10


Afin de centraliser les logs, les messages sont redirigés vers /var/log/nexus en mettant en place des liens symboliques. Ceci permet de ne pas modifier les fichiers de configurations, limitant les modifications lors des futures montées de version.

#sudo rmdir /var/opt/nexus/2.14.1-01/logs
#sudo ln -s /var/log/nexus /var/opt/nexus/2.14.1-01/logs
#sudo chown -h nexus:nexus /var/opt/nexus/2.14.1-01/logs


Share-icon.png Fichiers communs

Les liens vers les fichiers communs sont mis en place.

#sudo rm -rf /var/opt/nexus/2.14.1-01/bin/jsw/conf
#sudo ln -s /var/opt/nexus/common/bin/jsw/conf /var/opt/nexus/2.14.1-01/bin/jsw/conf
#sudo chown -h nexus:nexus /var/opt/nexus/2.14.1-01/bin/jsw/conf
#sudo rm -rf /var/opt/nexus/2.14.1-01/conf
#sudo ln -s /var/opt/nexus/common/conf /var/opt/nexus/2.14.1-01/conf
#sudo chown -h nexus:nexus /var/opt/nexus/2.14.1-01/conf


Run-icon.png Exécution

Lors de l'installation de Nexus en service, un lien /var/opt/nexus/installed a été mis en place pour pointer sur la version à activer.

#sudo service nexus stop
#sudo rm /var/opt/nexus/installed
#sudo ln -s /var/opt/nexus/2.14.1-01 /var/opt/nexus/installed
#sudo chown -h nexus:nexus /var/opt/nexus/installed

Il suffit de relancer le service pour la prise en compte de la mise à jour.

#sudo service nexus start