Déploiement Autonome de Redis sur CentOS 7 en Environnement Hors Ligne

Préparation de l'environnement et des dépendances

Avant de commencer, assurez-vous qu'aucune instance résiduelle n'est présente et que le compilateur C est disponible sur le système.

# Vérification des processus existants
[admin@srv ~]$ ps aux | grep -i redis

# Désinstallation si nécessaire
[admin@srv ~]$ sudo yum erase redis -y

# Vérification de la présence de GCC
[admin@srv ~]$ gcc -v

Si GCC n'est pas installé et que le serveur ne dispose pas d'accès à internet, vous devez transférer manuellement les paquets RPM de GCC (récupérés depuis les miroirs officiels CentOS) et les installer localement :

[admin@srv ~]$ cd /tmp/gcc-packages
[admin@srv gcc-packages]$ sudo rpm -Uvh *.rpm --nodeps --force

Architecture des répertoires et compilation du code source

Transférez l'archive source de Redis sur le serveur. Nous allons créer une structure de dossiers optimisée pour isoler l'installation.

[admin@srv ~]$ sudo mkdir -p /opt/redis-standalone/{bin,etc,var,log,run}
[admin@srv ~]$ cd /opt/redis-standalone
[admin@srv redis-standalone]$ sudo tar -xzf /tmp/redis-6.2.6.tar.gz

Lancez la compilation. Si vous rencontrez une erreur liée à l'absence de jemalloc, forcez l'utilisation de l'allocateur standard libc.

[admin@srv redis-standalone]$ cd redis-6.2.6
[admin@srv redis-6.2.6]$ make -j$(nproc) MALLOC=libc
[admin@srv redis-6.2.6]$ sudo make install PREFIX=/opt/redis-standalone

Configuration du service

Copiez le fichier de configuration par défaut et adaptez-le à notre nouvelle architceture.

[admin@srv redis-6.2.6]$ sudo cp redis.conf /opt/redis-standalone/etc/redis-main.conf
[admin@srv redis-6.2.6]$ sudo vi /opt/redis-standalone/etc/redis-main.conf

Modifications clés à apporter dans redis-main.conf :

  • bind 0.0.0.0 (ou l'adresse IP spécifique du serveur)
  • daemonize yes
  • pidfile /opt/redis-standalone/run/redis.pid
  • logfile /opt/redis-standalone/log/redis-server.log
  • dir /opt/redis-standalone/var
  • requirepass VotreMotDePasseRobuste

Démarrage et tests de fonctionnement

Exécutez le binaire en pointant vers le nouveau fichier de configuration.

[admin@srv ~]$ /opt/redis-standalone/bin/redis-server /opt/redis-standalone/etc/redis-main.conf

# Vérification du processus
[admin@srv ~]$ ps -eo pid,comm | grep redis

# Connexion via l'interface en ligne de commande
[admin@srv ~]$ /opt/redis-standalone/bin/redis-cli -p 6379
127.0.0.1:6379> AUTH VotreMotDePasseRobuste
OK
127.0.0.1:6379> SET status "operational"
OK
127.0.0.1:6379> GET status
"operational"

Intégration au PATH système

Pour éviter de saisir le chemin absolu à chaque fois, ajoutez le répertoire bin aux variables d'environnement de l'utilisateur.

[admin@srv ~]$ echo 'export PATH=/opt/redis-standalone/bin:$PATH' >> ~/.bashrc
[admin@srv ~]$ source ~/.bashrc

Ouverture des ports réseau

Configurez firewalld pour autoriser le trafic entrant sur le port d'écoute de la base de données.

[admin@srv ~]$ sudo systemctl enable --now firewalld
[admin@srv ~]$ sudo firewall-cmd --permanent --add-port=6379/tcp
[admin@srv ~]$ sudo firewall-cmd --reload
[admin@srv ~]$ sudo firewall-cmd --list-ports

Création du service Systemd

Pour garantir le démarrage automatique et une gestion propre des processus par le système d'exploitation, créez un fichier unit.

[admin@srv ~]$ sudo vi /etc/systemd/system/redis-custom.service

Insérez la configuration suivante :

[Unit]
Description=Advanced key-value store - Custom Instance
After=network.target

[Service]
Type=forking
ExecStart=/opt/redis-standalone/bin/redis-server /opt/redis-standalone/etc/redis-main.conf
ExecStop=/opt/redis-standalone/bin/redis-cli -p 6379 -a VotreMotDePasseRobuste shutdown
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target

Activez et démarrez le service :

[admin@srv ~]$ sudo systemctl daemon-reload
[admin@srv ~]$ sudo systemctl enable redis-custom
[admin@srv ~]$ sudo systemctl start redis-custom
[admin@srv ~]$ sudo systemctl status redis-custom

Étiquettes: CentOS Redis systemd firewalld GCC

Publié le 5 juillet à 02h31