1) Les bases a préparer

1.1) Un Serveur Debian dernière version stable

Voir : https://mytutos.zilm.ovh/?Debian-in...

1.2) Toutes les infos à retenir

IP Serveur 192.168.X.X
Login : root MDP: root-pass
SSH et utilisateur
Login: username (urbackup) pour le serveur urbackup
Pass: userpass

 2) Installations de JDK8

 Pour commencer, ajouté le dépôt permettant l’installation de JDK8 avec les commandes suivantes :

mkdir -p /etc/apt/keyrings
wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc
echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list
apt update 
apt install temurin-8-jdk

 3) Crée un utilisateur Nexus

 Pour ne pas lancer l’installation Nexus en Root, nous allons créer un utilisateur dédier à cette tâche :

useradd -M -d /opt/nexus -s /bin/bash -r nexus

Puis, installer sudo (si ce n’est pas fait), pour permettre de donner des droits d’administrateur à des comptes linux :

apt install sudo -y


 Et donner des droits sudo au compte nouvellement crée

echo "nexus ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/nexus

 4) Installation de Nexus

 Vérifier la version du soft ici : https://help.sonatype.com/en/downlo...
 Prendre la version pour Java 8
 Dans un premier temps, rendez-vous dans le dossier tmp de votre machine :

cd /tmp


 Puis lancer la commande suivante pour télécharger nexus dans ce dossier :

wget https://download.sonatype.com/nexus/3/nexus-3.67.1-01-unix.tar.gz


 Ceci fait, crée un dossier dédier à nexus pour les fichiers de configurations de bases

mkdir /opt/nexus

Puis décompresser l’archive précédemment télécharger dans ce dossier :

tar xzf nexus-3.67.1-01-unix.tar.gz -C /opt/nexus --strip-components=1

Puis donner les droits de ce dossier à l’utilisateur Nexus :

chown -R nexus: /opt/nexus


 Ensuite, renommé le fichier /opt/nexus/bin/nexus.vmoptions en nexus.vmoption.back avant de le recrée :

mv /opt/nexus/bin/nexus.vmoptions /opt/nexus/bin/nexus.vmoptions.back
nano /opt/nexus/bin/nexus.vmoptions


 Et copier les lignes suivantes pour qu’il soit configuré comme ceci :

-Xms1024m
-Xmx1024m
-XX:MaxDirectMemorySize=1024m
-XX:+UnlockDiagnosticVMOptions
-XX:+LogVMOutput
-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties
-Dkaraf.data=/opt/nexus/nexus-data
-Dkaraf.log=/opt/nexus/nexus-data/log
-Djava.io.tmpdir=/opt/nexus/nexus-data/tmp
-Dkaraf.startLocalConsole=false
-Djdk.tls.ephemeralDHKeySize=2048
-Djava.endorsed.dirs=lib/endorsed

 6) Lancement de Nexus

 Modifier le fichier de config pour que nexus ce lance avec le bon utilisateur en utilisant la commande suivante :

sed -i 's/#run_as_user=""/run_as_user="nexus"/' /opt/nexus/bin/nexus.rc


 Afin que Nexus se lance automatiquement au démarrage de la machine, vous allez devoir crée un service, pour cela utiliser la commande suivante :

cat > /etc/systemd/system/nexus.service << 'EOL'
[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
EOL


 Relancer le systemd manager :

systemctl daemon-reload


 Puis lancer et activer le service Nexus :

systemctl enable --now nexus


 Vérifier que le service nouvellement crée est bien up :

systemctl status nexus


 Pour savoir quand l’application sera correctement lancée, vous pouvez suivre ses logs avec la commande :

tail -f /opt/nexus/nexus-data/log/nexus.log


 Quand les logs afficheront ce qui suit, l’application sera accessible depuis l’interface web :

 7) Connexion à l’interface Web

 Vous pouvez à présent vous connecter à l’interface web sur le port 8081 via http://ipServeur:8081
Avant de pouvoir vous logger avec admin , récupérer le mdp administrateur depuis le serveur en utilisant la commande suivante :

cat /opt/nexus/nexus-data/admin.password


 Une fois ce mot de passe en votre possession, connecter vous en cliquant sur Sign In sur l’interface Web avec l’utilisateur admin


 Puis vous devrez crée un nouveau mot de passe pour l’applications.
 Une fois validé, vous aurez également le choix de laisser l’acces en Anonyme, laisser le actif

 8) Ajout d’un Depot

 Afin de pouvoir crée la redirection d’un dépôt officiel, connecter vous à l’interface web de Nexus via l’adresse suivante : https://IPdeNEXUS:8086
 Une fois sur la page, cliquer sur Sign in en haut à droite de la page et logguer vous avec votre compte administrateur
 Une fois logger, cliquer sur la roue dentée en haut de la page pour arriver sur l’interface d’administration 
 Puis cliquer sur Repositories dans le menu de gauche :
 Ensuite, pour ajouter un dépôt, cliquer sur le bouton Create repository en haut de la page.

8.1) Dépôt Apt pour Ubuntu et Debian :


 Cliquer sur apt (proxy) pour crée une nouvelle redirection pour le gestionnaire de paquet apt


 Les champs doivent être remplir comme ceci :

Name: nom de votre Dépôt (par exemple debian)
Distribution: nom de la distribution visé (par exemple debian)
Remote storage: url vers le dépôt
Le reste est optionnel, il n’est pas nécessaire de le modifier



 Puis cliquer sur Create repository

8.2) Dépôt Yum pour CentOS, Rocky et RedHat :


 Cliquer sur yum (proxy) pour crée une nouvelle redirection pour le gestionnaire de paquet yum
Name : nom de votre Dépôt (par exemple Rocky_9)
Remote storage : url du dépôt (par exemple http://dl.rockylinux.org/pub/rocky)
Signing-Key : Entrer la clef gpg du dépôt par exemple http://dl.rockylinux.org/pub/rocky/...


 Puis cliquer sur Create repository

 9) Configuration du dépôt nexus sur les machines Linux

9.1) Dépôt Ubuntu et Debian :


 Pour remplacer le repository officiel par Nexus sur un serveur Debian ou Ubuntu, connecter vous en ssh sur le serveur en question et modifier le fichier sources.list avec la commande suivante :

nano /etc/apt/sources.list


 Commenté les lignes existante en ajoutant un # devant chacune d’elle et ajouter le dépôt nexus sous cette forme :
 Exemple pour Debian 12

deb [arch=amd64 trusted=yes] http://192.168.3.116:8081/repository/debian/ bookworm main non-free-firmware
deb-src [arch=amd64 trusted=yes] http://192.168.3.116:8081/repository/debian/ bookworm main non-free-firmware

deb [arch=amd64 trusted=yes] http://192.168.3.116:8081/repository/debian-security/ bookworm-security main non-free-firmware
deb-src [arch=amd64 trusted=yes] http://192.168.3.116:8081/repository/debian-security bookworm-security main non-free-firmware

deb [arch=amd64 trusted=yes] http://192.168.3.116:8081/repository/debian/ bookworm-updates main non-free-firmware
deb-src [arch=amd64 trusted=yes] http://192.168.3.116:8081/repository/debian/ bookworm-updates main non-free-firmware


 Pour tester si les nouveaux dépôts ajouter son bien fonctionnel, faite un update des packages, s’il ne remonte pas d’erreur c’est que le dépôts est bien joignable

apt update

9.2) Dépôt Centos, RedHat et Rocky 


 Pour remplacer le repository officiel par Nexus sur un serveur Centos, RedHat ou Rocky, connecter vous en ssh sur le serveur en question et déplacer les dépôts actuel dans un autre dossier
 Crée un dossier backup dans le dossier ou ce trouve les dépôts actuel, et déplacer y la totalité des .repo présent

mkdir /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/


 Puis crée un fichier .repo pour y mettre notre dépôt nexus

nano /etc/yum.repos.d/nexus.repo


 Remplissez-le avec la configuration suivante (pour Rocky9 par exemple) :

[Base]
name=Rocky-$releasever - BaseOS
baseurl=http://192.168.3.116:8081/repository/Rocky_9/$releasever/BaseOS/x86_64/os/
gpgcheck=1

[Extras]
name=Rocky-$releasever - Extras
baseurl=http://192.168.3.116:8081/repository/Rocky_9/$releasever/extras/x86_64/os/
gpgcheck=1

[AppStream]
name=Rocky-$releasever - AppStream
baseurl=http://192.168.3.116:8081/repository/Rocky_9/$releasever/AppStream/x86_64/os/
gpgcheck=1

[Devel]
name=Rocky-$releasever - Eevel
baseurl=http://192.168.3.116:8081/repository/Rocky_9/$releasever/devel/x86_64/os/
gpgcheck=1

[Epel]
name=Rocky-$releasever - Epel
baseurl=http://192.168.3.116:8081/repository/Rocky_9_epel/$releasever/Everything/$basearch
gpgcheck=1


 Vérifier que le dépôt soit bien pris en compte avec la commande suivante :

yum check-update

 10) Update Nexus Application

 Stopper nexus

systemctl stop nexus.service


 Dans un premier temps, rendez-vous dans le dossier tmp de votre machine :

cd /tmp

Puis lancer la commande suivante pour télécharger nexus dans ce dossier (adapter la version exact à télécharger) : https://help.sonatype.com/en/downlo...

wget https://download.sonatype.com/nexus/3/nexus-3.60.0-02-unix.tar.gz


 Puis décompresser l’archive précédemment télécharger dans ce dossier :

tar xzf nexus-3.60.0-02-unix.tar.gz -C /opt/nexus --strip-components=1


 Modifier le fichier de config pour que nexus ce lance avec le bon utilisateur en utilisant la commande suivante :

sed -i 's/#run_as_user=""/run_as_user="nexus"/' /opt/nexus/bin/nexus.rc

Ensuite, renommé le fichier /opt/nexus/bin/nexus.vmoptions en nexus.vmoption.back avant de le recrée :

mv /opt/nexus/bin/nexus.vmoptions /opt/nexus/bin/nexus.vmoptions.back
nano /opt/nexus/bin/nexus.vmoptions


 Et copier les lignes suivantes pour qu’il soit configuré comme ceci :

-Xms1024m
-Xmx1024m
-XX:MaxDirectMemorySize=1024m
-XX:+UnlockDiagnosticVMOptions
-XX:+LogVMOutput
-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties
-Dkaraf.data=/opt/nexus/nexus-data
-Dkaraf.log=/opt/nexus/nexus-data/log
-Djava.io.tmpdir=/opt/nexus/nexus-data/tmp
-Dkaraf.startLocalConsole=false
-Djdk.tls.ephemeralDHKeySize=2048
-Djava.endorsed.dirs=lib/endorsed


 Puis lancer Nexus (C’est long patience :

systemctl start nexus.service


 Le serveur est à jour

 11) Conclusions

 Ce serveur est très pratique si l’on veux couper l’accès direct à internet à nos serveur.