Sonatype Nexus est un gestionnaire de référentiel populaire utilisé dans le monde entier pour la plupart des composants, binaires et artefacts de construction. Il prend en charge l'écosystème Java Virtual Machine (JVM), y compris Gradle, Ant, Maven et Ivy.
Compatible avec les outils standard, notamment Eclipse, IntelliJ, Hudson, Jenkins, Puppet, Chef, Docker, etc., le référentiel Sonatype Nexus peut gérer les composants de développement jusqu'à la livraison des conteneurs de binaires, des assemblages et des produits finis.
Dans ce didacticiel, nous vous fournirons un guide complet sur la configuration de la version OSS de Sonatype Nexus Repository sur CentOS 7.
Installation de Sonatype Nexus Repository OSS sur CentOS 7
Avant de commencer le didacticiel, examinons la configuration système minimale requise pour exécuter le Sonatype Nexus Repo.
Configuration requise
- CPU minimum :4, CPU recommandés :8+
- Physique/RAM minimum sur l'hôte 8 Go
1. Pré-installation
Commencez par définir le nom d'hôte.
lien hostnamectl set-hostname
Mettez à jour votre système CentOS.
yum mise à jour -y
Installez Java à l'aide de la commande suivante :
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Une fois l'installation terminée, vérifiez la version Java pour vous assurer que vous êtes prêt à passer à l'étape suivante de téléchargement du Repo.
version Java
2. Télécharger Nexus Repository Manager 3
Accédez au répertoire opt :
cd /opt
Copiez la dernière URL du référentiel à partir du site Web officiel, puis téléchargez-la à l'aide de wget.
wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
Extrayez le fichier tar.
tar -xvzf dernier-unix.tar.gz
Vous devriez voir deux répertoires, y compris les fichiers nexus et le répertoire de données nexus.
ls -lh
Renommez les dossiers.
mv nexus-3.20.1-01 nexus
mv sonatype-work nexusdata
3. Définir l'utilisateur/les autorisations et les configurations
I. Ajouter un utilisateur pour un service Nexus.
useradd --system --no-create-home lien
II. Définissez la propriété des fichiers Nexus et des données Nexus.
chown -R nexus:nexus /opt/nexus
chown -R nexus:nexus /opt/nexusdata
III. Modifiez la configuration de Nexus et définissez le répertoire de données personnalisé
Modifiez "nexus.vmoptions".
vim /opt/nexus/bin/nexus.vmoptions
Changer le répertoire de données.
-Xms2703m-Xmx2703m-XX:MaxDirectMemorySize=2703m-XX:+UnlockDiagnosticVMOptions-XX:+LogVMOutput-XX:LogFile=../nexusdata/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=../nexusdata/nexus3-Dkaraf.log=../nexusdata/nexus3/log-Djava.io.tmpdir=../nexusdata/nexus3/tmp-Dkaraf.startLocalConsole=false
Enregistrez et quittez le fichier.
IV. Modifiez l'utilisateur du compte de service Nexus.
Modifiez le fichier "nexus.rc".
vim /opt/nexus/bin/nexus.rc
Décommentez le paramètre "run_as_user" et ajoutez une nouvelle valeur.
run_as_user="nexus"
V. Arrêtez d'écouter les connexions à distance.
Nous devons modifier le fichier "nexus-default.properties".
vim /opt/nexus/etc/nexus-default.properties
Remplacez application-host=0.0.0.0 par application-host=127.0.0.1.
VI. Configurez la limite de fichiers ouverts de l'utilisateur Nexus.
vim /etc/security/limits.conf
Ajoutez les valeurs ci-dessous au fichier.
lien - nofile 65536
Enregistrez et le fichier de sortie.
4. Définir Nexus en tant que service système
Créez le fichier de service Systemd dans "/etc/systemd/system/".
vim /etc/systemd/system/nexus.service
Ajoutez ce qui suit au fichier.
[Unit]Description=Nexus ServiceAfter=syslog.target network.target[Service]Type=forkingLimitNOFILE=65536ExecStart=/opt/nexus/bin/nexus startExecStop=/opt/nexus/bin/nexus stopUser=nexusGroup=nexusRestart=en cas d'échec[Install]WantedBy=multi-user.target
Recharger systemctl.
rechargement du démon systemctl
Activer le service au démarrage du système.
systemctl activer nexus.service
Démarrer le service.
systemctl démarrer nexus.service
Surveillez le fichier journal.
tail -f /opt/nexusdata/nexus3/log/nexus.log
Vérifiez le port de service.
netstat -tunlp | grep 8081
5. Configurer Nginx
Configurer les référentiels epel.
yum install -y epel-release
Lister les référentiels.
miam repolist
Installez Nginx.
yum installer nginx
définir nginx au démarrage du système
systemctl activer nginx
vérifier l'état de Nginx et démarrer le service si le service n'est pas en cours d'exécution.
statut systemctl nginx
systemctl démarrer nginx
6. Définissez les enregistrements DNS pour les serveurs.
Allez ensuite dans votre gestionnaire DNS et ajoutez un enregistrement A pour votre serveur.
Une IP de serveur de noms de domaine
Ici, nous avons utilisé AWS route 53 pour configurer notre DNS.
7. Configurer SSL à l'aide de certbot
I. Installez d'abord les packages certbot.
yum installer certbot python2-certbot-nginx
II. Installez les certificats.
certbot --nginx
Il posera quelques questions et saisira l'adresse e-mail, le nom de domaine et les entrées nécessaires comme suit.
Une fois l'installation terminée, ouvrez nginx.conf.
vim /etc/nginx/nginx.conf
Vous pouvez voir la configuration SSL du certbot.
III. Ajouter un laissez-passer proxy
Ajoutez le contenu suivant à un bloc d'emplacement.
emplacement / { proxy_pass "http://127.0.0.1:8081" ; proxy_set_header Hôte $hôte ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; proxy_set_header X-Forwarded-Proto $scheme ; proxy_set_header X-Forwarded-Ssl activé ; proxy_read_timeout 300 ; proxy_connect_timeout 300 ; }Enregistrez et quittez le fichier.
Vérifiez la syntaxe nginx :
nginx -tRedémarrez Nginx :
systemctl redémarrer nginx8. Définir des règles de pare-feu
Activez maintenant l'accès https à une adresse IP publique spécifique. Exécutez la commande ci-dessous.
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4"adresse source="123.44.8.180/32"port protocol="tcp" port="443" accepter'Si vous devez ouvrir https au public, exécutez la commande ci-dessous :
firewall-cmd --zone=public --permanent --add-service=httpsRechargez le pare-feu.
firewall-cmd --reload9. Configurer la politique SELinux pour Nginx
setsebool -P httpd_can_network_connect 110. Parcourir le site Web en utilisant votre nom de domaine
par exemple :https://nexusrepo.fosslinux.com/11. Connectez-vous au serveur
Connectez-vous avec le nom d'utilisateur par défaut "admin". Exécutez la commande ci-dessous sur le serveur et obtenez le mot de passe.
cat /opt/nexusdata/nexus3/admin.passwordAprès la première connexion, vous devriez voir une fenêtre similaire, comme illustré ci-dessous.
Cliquez sur suivant et configurez un nouveau mot de passe pour l'utilisateur administrateur.
Encore une fois, cliquez sur suivant, et vous devriez voir la fenêtre "Configurer l'accès anonyme". Ne pas activer l'accès anonyme.
Cliquez sur le bouton Suivant et vous pourrez voir la configuration complète.
Cliquez sur la finition.
Il s'agit d'installer le Sonatype Nexus Repository OSS sur votre CentOS 7.