Base de données · 10 min read · Dec 19, 2025
Comment déployer un cluster CockroachDB sécurisé sur un serveur Ubuntu 20.04

CockroachDB est une base de données SQL open-source et cloud-native développée par CockroachLabs. C’est une base de données SQL distribuée construite sur des magasins transactionnels et clé-valeur.
CockroachDB est une base de données SQL évolutive qui a été comparée à la base de données Google Spanner. Elle est basée sur le protocole PostgreSQL et prête pour la production.
Ce tutoriel vous montrera comment configurer le cluster CockroachDB sécurisé sur Ubuntu 20.04. Vous apprendrez à configurer le cluster sécurisé, accéder au tableau de bord d’administration de CockroachDB, créer un nouvel utilisateur sur CockroachDB, créer et afficher une base de données sur CockroachDB.
Prérequis
Pour ce guide, nous allons configurer le cluster CockroachDB sécurisé avec 3 serveurs Ubuntu 20.04.
node01 172.16.0.3
node02 172.16.0.4
node03 172.16.0.5
Que allons-nous faire ?
- Configurer NTP avec Chrony
- Télécharger le binaire CockroachDB pour Linux
- Générer des certificats SSL pour le cluster CockroachDB
- Démarrer le cluster CockroachDB sécurisé
- Créer un utilisateur administrateur pour CockroachDB
- Accéder au tableau de bord CockroachDB
- Tester la réplication de base de données sur le cluster CockroachDB
Étape 1 - Configurer le serveur NTP avec Chrony
Tout d’abord, nous allons synchroniser l’heure sur nos trois serveurs avec le serveur NTP en utilisant chrony. Assurez-vous donc d’exécuter toutes les commandes de cette étape sur tous les serveurs.
Maintenant, mettez à jour tous les dépôts disponibles sur votre système et installez le paquet chrony en utilisant la commande apt ci-dessous.
sudo apt update
sudo apt install chrony -yUne fois toutes les installations terminées, allez dans le répertoire ‘/etc/chrony’ et éditez la configuration ‘chrony.conf’ en utilisant l’éditeur vim.
cd /etc/chrony/
vim chrony.confChangez le pool par défaut avec votre serveur NTP le plus proche comme ci-dessous.
pool 0.sg.pool.ntp.org iburst maxsources 4
pool 1.sg.pool.ntp.org iburst maxsources 1
pool 2.sg.pool.ntp.org iburst maxsources 1
pool 3.sg.pool.ntp.org iburst maxsources 2Enregistrez et fermez.
Ensuite, redémarrez le service chrony et ajoutez-le au démarrage du système.
systemctl restart chrony
systemctl enable chronyLe service chrony est en cours d’exécution, vérifiez en utilisant la commande suivante.
systemctl status chronyVoici le résultat que vous obtiendrez.

En conséquence, l’installation et la configuration de Chrony ont été complétées. En effet, l’heure sur tous les serveurs a été synchronisée avec les mêmes serveurs NTP.
Étape 2 - Télécharger le binaire CockroachDB
Dans cette étape, nous allons télécharger et installer CockroachDB sur nos trois serveurs.
Maintenant, créez un nouveau répertoire nommé ‘binary’ et entrez dans celui-ci.
mkdir -p binary; cd binaryAprès cela, téléchargez la dernière version du fichier binaire CockroachDB et extrayez-le.
wget -q https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz
tar -xf cockroach-latest.linux-amd64.tgzMaintenant, déplacez le fichier binaire ‘cockroach’ vers le répertoire ‘/usr/local/bin’.
cp cockroach-*/cockroach /usr/local/bin/En conséquence, vous pouvez exécuter la commande ‘cockroach’ sur votre système.
Vérifiez le fichier binaire ‘cockroach’ et la version de CockroachDB en utilisant la commande suivante.
which cockroach
cockroach versionVoici le résultat que vous obtiendrez.

En conséquence, vous avez téléchargé et installé CockroachDB v20.1.5 sur les serveurs Linux, et maintenant vous êtes en mesure de créer le cluster CockroachDB.
Étape 3 - Créer des certificats SSL pour le cluster CockroachDB
Avant de créer le nouveau cluster CockroachDB, nous allons créer et générer des certificats SSL pour sécuriser notre cluster. Pour générer les certificats SSL, nous pouvons utiliser OpenSSL ou utiliser la ligne de commande ‘cockroach’.
- Créer le répertoire de certificats CockroachDB
Tout d’abord, nous devons créer un nouveau répertoire pour stocker tous les certificats SSL pour notre cluster CockroachDB.
En tant qu’utilisateur root, créez un nouveau répertoire ‘~/.cockroach-certs’ et ajoutez la variable d’environnement système ‘COCKROACH_CERTS_DIR’ en utilisant la commande ci-dessous.
mkdir -p ${HOME}/.cockroach-certs/
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'Ensuite, pour rendre la variable d’environnement ‘COCKROACH_CERTS_DIR’ permanente, éditez la configuration ~/.bashrc en utilisant l’éditeur vim.
vim ~/.bashrcCollez la configuration suivante à la fin de la ligne.
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'Enregistrez et fermez.
Ensuite, rechargez la configuration ~/.bashrc et vérifiez la variable d’environnement ‘COCKROACH_CERTS_DIR’.
source ~/.bashrc
echo $COCKROACH_CERTS_DIREt vous obtiendrez la variable ‘COCKROACH_CERTS_DIR’ avec la valeur ‘répertoire ${HOME}/.cockroach-certs/‘.

- Créer un certificat CA et une clé
Après avoir créé le répertoire de chemin SSL, nous allons générer le certificat CA et la clé en utilisant la ligne de commande ‘cockroach’ sur le serveur ‘node01’.
Générez le certificat CA et la clé dans le ‘$COCKROACH_CERT_DIR’ en utilisant la commande ‘cockroach’ ci-dessous.
cockroach cert create-ca \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyAprès cela, copiez le ‘ca.crt’ et ‘ca.key’ générés vers les autres serveurs ‘node02’ et ‘node03’ en utilisant la commande scp comme ci-dessous.
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/En conséquence, le certificat CA et la clé sont créés et téléchargés sur tous les serveurs.

- Créer un certificat client sur node01
Après avoir créé le certificat CA et la clé, nous allons générer le certificat client utilisé pour sécuriser la communication entre le shell SQL intégré et le cluster.
Générez le certificat client en utilisant la commande cockroach suivante.
cockroach cert create-client \
root \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyMaintenant, vous obtiendrez de nouveaux certificats ‘client.root.crt’ et ‘client.root.key’ dans le répertoire ‘$COCKROACH_CERTS_DIR’.

- Créer des certificats de serveur sur tous les serveurs
Les certificats de serveur seront utilisés pour sécuriser la communication entre les serveurs sur le cluster CockroachDB. Pour rejoindre le cluster sécurisé, vous devez générer des certificats de serveur pour chaque serveur.
Sur le premier ‘node01’, générez le certificat de serveur en utilisant la commande suivante, et assurez-vous de changer l’adresse IP avec la vôtre.
cockroach cert create-node \
localhost \
$(hostname) \
172.16.0.3 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyEnsuite, générez le certificat de serveur pour le ‘node02’ en utilisant la commande suivante.
cockroach cert create-node \
localhost \
$(hostname) \
172.16.0.4 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyAprès cela, générez le certificat de serveur pour le serveur ‘node03’.
cockroach cert create-node \
localhost \
$(hostname) \
172.16.0.5 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyMaintenant, si vous vérifiez le répertoire ‘~/.cockroach-certs’, vous obtiendrez de nouveaux certificats ‘node.crt’ et ‘node.key’ sur tous les serveurs.
ls -lah ${HOME}/.cockroach-certs/Voici tous les certificats disponibles sur le serveur maître ‘node01’.

Vous verrez trois certificats différents, certificats CA, certificats clients et certificats de serveur.
Et pour les autres nœuds ‘node02’ et ‘node03’, vous verrez deux certificats, certificats CA et certificats de serveur.

En conséquence, nous sommes prêts à démarrer et créer le cluster CockroachDB sécurisé.
Étape 4 - Démarrer le cluster sécurisé CockRoachDB
Pour démarrer le cluster CockroachDB sécurisé, vous devez démarrer le processus CockroachDB sur chaque serveur.
Avant de démarrer le processus CockroachDB, assurez-vous de changer les détails de l’adresse IP pour chaque serveur avec les vôtres et assurez-vous que la variable d’environnement ‘$COCKROACH_CERTS_DIR’ est chargée.
Tout d’abord, démarrez le processus CockroachDB sur le ‘node01’ en utilisant la commande suivante.
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--store=/var/lib/cockroachdb \
--advertise-host=172.16.0.3 --listen-addr=172.16.0.3 \
--join=172.16.0.3:26257,172.16.0.4:26257,172.16.0.5:26257
Maintenant, passez au serveur ‘node02’ et démarrez le processus CockroachDB.
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--store=/var/lib/cockroachdb \
--advertise-host=172.16.0.4 --listen-addr=172.16.0.4 \
--join=172.16.0.3:26257,172.16.0.4:26257,172.16.0.5:26257
Après cela, démarrez le processus CockroachDB sur le serveur ‘node03’.
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--store=/var/lib/cockroachdb \
--advertise-host=172.16.0.5 --listen-addr=172.16.0.5 \
--join=172.16.0.3:26257,172.16.0.4:26257,172.16.0.5:26257
Maintenant, le processus CockroachDB a été démarré sur tous les serveurs. Il fonctionne sur le port ‘26257’, et les données de DockroachDB sont stockées dans le répertoire ‘/var/lib/cockroachdb’.
Vous pouvez vérifier le port CockroachDB en utilisant la commande suivante.
ss -plntuComme vous pouvez le voir, le processus CockroachDB fonctionne sur le port TCP ‘26257’ pour la connexion à la base de données et le port ‘8080’ comme tableau de bord d’administration CockroachDB par défaut.
Ensuite, revenez au serveur maître ‘node01’ et initialisez le cluster CockroachDB sécurisé en utilisant la commande ci-dessous.
cockroach init --host=172.16.0.3:26257Et vous obtiendrez le message suivant.
Cluster successfully initializedDe plus, vous pouvez vérifier le fichier journal de CockroachDB pour voir les détails de l’initialisation du cluster.
grep 'node starting' /var/lib/cockroachdb/logs/cockroach.log -A 11Voici le résultat que vous obtiendrez.

En conséquence, l’initialisation du cluster CockroachDB sécurisé a été complétée avec succès.
Étape 5 - Créer un utilisateur administrateur pour CockroachDB
Après avoir initialisé avec succès le cluster CockroachDB, vous devez créer un nouvel utilisateur qui se connectera au tableau de bord d’administration de CockroachDB.
Depuis le serveur maître ‘node01’, connectez-vous au shell SQL de CockroachDB en utilisant la commande suivante.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=172.16.0.3Maintenant, créez un nouvel utilisateur nommé ‘yume’ avec le mot de passe ‘yume321’ en utilisant la requête suivante.
CREATE USER yume WITH PASSWORD 'yume321';Après cela, autorisez l’utilisateur ‘yume’ à se connecter et ajoutez-le au rôle ‘admin’.
ALTER USER yume LOGIN;
GRANT admin TO yume;Maintenant, vérifiez tous les utilisateurs disponibles sur CockroachDB en utilisant la requête suivante.
SHOW USERS;Voici le résultat que vous obtiendrez.

Comme vous pouvez le voir, le nouvel utilisateur yume est disponible dans la liste. C’est un membre du rôle ‘admin’.
En conséquence, vous avez créé un nouvel utilisateur pour la base de données CockroachDB.
Étape 6 - Accéder au tableau de bord CockroachDB
Par défaut, CockroachDB fournit un tableau de bord d’administration basé sur le web fonctionnant sur le port TCP par défaut ‘8080’.
Ouvrez votre navigateur web et tapez l’adresse IP de votre serveur avec le port ‘8080’ dans la barre d’adresse.
Maintenant, vous obtiendrez la page de connexion CockroachDB comme ci-dessous.

Tapez l’utilisateur ‘ yume ‘ et le mot de passe ‘ yume321 ‘ dans le champ et cliquez sur le bouton ‘ LOG IN ‘.
Et vous obtiendrez le tableau de bord CockroachDB comme ci-dessous.

Comme vous pouvez le voir, vous avez le cluster CockroachDB avec trois nœuds actifs.
En conséquence, vous vous êtes connecté avec succès au tableau de bord d’administration CockroachDB avec un nouvel utilisateur.
Étape 7 - Tester la réplication de base de données
Pour cette étape, nous allons tester la réplication de base de données entre chaque nœud du cluster.
Nous allons créer une nouvelle base de données sur le serveur ‘node01’ en utilisant l’utilisateur ‘yume’ et ensuite vérifier la base de données depuis les autres nœuds ‘node02’ et ‘node03’.
- Connectez-vous à node01 et créez des bases de données
Sur le serveur ‘node01’, connectez-vous au shell SQL de CockroachDB en tant qu’utilisateur ‘yume’ en utilisant la commande suivante.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR --user=yume \
--host=172.16.0.3Une fois que vous êtes connecté au shell SQL de CockroachDB, créez de nouvelles bases de données en utilisant les requêtes suivantes.
CREATE DATABASE yumedb;
CREATE DATABASE yumedb2;Maintenant, vérifiez toutes les bases de données disponibles sur CockroachDB.
SHOW DATABASES;Et vous obtiendrez ‘yumedb’ et ‘yumedb2’ dans la liste des bases de données.

- Vérifiez la réplication de base de données sur node02 et node03
Ensuite, passez au serveur ‘node02’ et connectez-vous au shell SQL de CockroachDB en tant qu’utilisateur ‘yume’ en utilisant la commande suivante.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR --user=yume \
--host=172.16.0.4Une fois que vous êtes connecté, vérifiez toutes les bases de données disponibles en utilisant la requête suivante.
SHOW DATABASES;Et vous obtiendrez les bases de données ‘yumedb’ et ‘yumedb2’ dans la liste.

Faites de même sur le serveur ‘node03’, et vous obtiendrez le même résultat.
Voici le résultat du serveur ‘node03’.

En conséquence, la réplication de base de données entre les nœuds du cluster CockroachDB fonctionne.
De plus, ci-dessous, vous pouvez voir toutes les bases de données depuis le tableau de bord d’administration CockroachDB.

Et enfin, l’installation et la configuration du cluster CockroachDB sécurisé sur Ubuntu 20.04 ont été complétées avec succès.
Référence
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.