Comment déployer un cluster CockroachDB sécurisé sur un serveur Ubuntu

CockroachDB est une base de données SQL open source et cloud-native développée par les CockroachLabs. C’est une base de données SQL distribuée construite sur le transactionnel et le key-value store. CockroachDB est une base de données SQL évolutive qui a été comparée à la base de données Spanner de Google. Elle est basée sur le fil du protocole PostgreSQL et est prête pour la production.

Dans ce tutoriel, nous allons te montrer comment configurer le Cluster CockroachDB sécurisé sur Ubuntu 18.04. Tu apprendras comment 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 la base de données sur CockroachDB.

Conditions préalables

Pour faire fonctionner le Cluster CockroachDB, nous avons besoin de plusieurs serveurs. Et nous utiliserons trois serveurs Ubuntu 18.04 avec le nom d’hôte et l’adresse IP détaillés ci-dessous.

node1   10.5.5.21
node2   10.5.5.22
node3   10.5.5.23

Ce que nous allons faire ?

  • Configure le serveur NTP avec Chronysystemctl restart chrony
    systemctl enable chrony
  • Télécharge et installe CockroachDB
  • Créer des certificats
  • Initialiser le cluster CockroachDB
  • Ajouter un nœud au cluster CockroachDB
  • Test de

Étape 1 – Configurer le serveur NTP avec Chrony

Tout d’abord, nous devons garder l’heure entre les serveurs du cluster synchronisée. Nous devons donc installer le paquet NTP sur tous les serveurs. Et pour ce guide, nous allons utiliser chrony.

Installe le paquet chrony sur tous les serveurs à l’aide de la commande suivante.

sudo apt install chrony -y

Une fois l’installation terminée, va dans le répertoire de configuration ‘/etc/chrony/’ et modifie le fichier ‘chrony.conf’.

cd /etc/chrony/
vim chrony.conf

Supprime le pool NTP par défaut et remplace-le par ton propre pool national.

pool 0.id.pool.ntp.org iburst maxsources 4
pool 1.id.pool.ntp.org iburst maxsources 1
pool 2.id.pool.ntp.org iburst maxsources 1
pool 3.id.pool.ntp.org iburst maxsources 2

Sauvegarde et ferme.

Maintenant, redémarre le service chrony et ajoute chrony au service de démarrage.

systemctl restart chrony
systemctl enable chrony

Ainsi, l’heure entre les serveurs sera synchronisée sur les mêmes serveurs de pool NTP.

Démarrer et activer Chrony

Étape 2 – Télécharge et installe CockroachDB

Dans cette étape, nous allons télécharger et installer CockroachDB sur tous les serveurs. Exécute donc toutes les commandes sur tous tes serveurs de cluster.

Crée un nouveau répertoire appelé ‘binary’ et entre dedans.

mkdir -p binary; cd binary

Télécharge le fichier binaire compressé cockroachdb pour Linux et extrais-le.

wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz
tar -xvzf cockroach-latest.linux-amd64.tgz

Copie ensuite le fichier binaire ‘cockroach’ dans le répertoire ‘/etc/local/bin’.

cp cockroach-*/cockroach /usr/local/bin/

Après cela, tu peux exécuter la commande ‘cockroach’ et explorer la commande de base pour obtenir de l’aide, vérifier la version, etc.

cockroach version

Le CockroachDB a été installé sur tous les serveurs.

Installer CockroachDB

Étape 3 – Créer des certificats

Nous allons maintenant générer des certificats pour sécuriser le Cluster CockrouchDB. Nous pouvons utiliser OpenSSL ou la ligne de commande Cockroach pour générer des fichiers de certificat.

Nous allons générer le certificat et la clé de l’autorité de certification, ainsi que le certificat pour la racine utilisateur et le certificat pour chaque nœud du cluster.

Crée le répertoire de certificats ‘~/.cockroach-certs’ et la variable d’environnement correspondante.

mkdir -p ${HOME}/.cockroach-certs/
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'

Créer l’AC et la copier sur tous les nœuds

Sur le serveur ‘node1’, crée l’autorité de certification à l’aide de la commande cockroach ci-dessous.

cockroach cert create-ca \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key

Tu obtiendras les fichiers ‘ca.key’ et ‘ca.crt’ dans le répertoire ‘~/.cockroach-certs’.

Créer une AC et la copier sur tous les nœuds

Ensuite, copie le certificat et la clé ca sur tous les serveurs à l’aide de la commande scp comme ci-dessous.

Copie sur le serveur ‘node2’.

scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/

Copie sur le serveur ‘node3’.

scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/

Assure-toi maintenant que le certificat CA et la clé sont téléchargés sur tous les serveurs hôtes.

Vérifier le certificat CA

Créer les certificats des clients

Après avoir créé l’autorité de certification, nous devons générer le certificat client. Le certificat client sera utilisé pour sécuriser la communication entre le shell SQL intégré et le cluster.

Génère le certificat client sur tous les serveurs à l’aide de la commande cockroach suivante.

cockroach cert create-client \
root \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key

Tu obtiendras les certificats client pour l’utilisateur root ‘client.root.crt’ et ‘client.root.key’.

Créer des certificats clients

Créer des certificats de serveur

Les certificats de serveur seront utilisés pour sécuriser la communication entre les serveurs du cluster CockroachDB. Et pour rejoindre le cluster sécurisé, tu dois générer des certificats de serveur pour chaque serveur.

Sur le ‘node1’, crée le certificat de serveur à l’aide de la commande suivante.

cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.21 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key

Change l’adresse IP avec la tienne.

Change l'adresse IP

Sur le ‘node2’, crée le certificat de serveur à l’aide de la commande suivante.

cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.22 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key

Remplace l’adresse IP par la tienne.

Configuration de l'adresse IP

Sur le ‘node3’, crée le certificat de serveur à l’aide de la commande suivante.

cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.23 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key

Remplace l’adresse IP par la tienne.

Tu obtiendras maintenant les certificats de serveur ‘node.crt’ et ‘node.key’ dans le répertoire ‘~/.cockroach-certs’.

Étape 4 – Démarre le cluster CockroachDB sécurisé

Après avoir créé quelques certificats SSL, nous allons initialiser le Secure CockroachDB Cluster à partir du serveur ‘node1’.

Exécute la commande suivante sur le serveur ‘node1’.

cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.21 --listen-addr=10.5.5.21

Assure-toi qu’il n’y a pas d’erreur.

Ensuite, vérifie l’état du nœud de cluster en exécutant la commande Cockroach ci-dessous.

cockroach node status --host=10.5.5.21

Tu obtiendras que le nœud1 avec l’adresse IP 10.5.5.21 est opérationnel avec CockroachDB v2.1.6.

Démar démar démarre le cluster

Étape 5 – Ajoute le nœud au cluster

Ensuite, nous allons ajouter le ‘node2’ et le ‘node3’ au cluster sécurisé CockroachDB.

Assure-toi que le certificat de l’autorité de certification et du serveur se trouve dans le répertoire ~/.cockroach-certs.

ls -lah ~/.cockroah-certs/

Exécute maintenant la commande suivante pour ajouter le ‘node2’ avec l’adresse IP 10.5.5.22. Ajoute-le au cluster CockroachDB.

cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.22 --listen-addr=10.5.5.22 \
--join=10.5.5.21:26257

Une fois que c’est terminé, va sur le ‘node3’ et exécute la commande suivante.

cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.23 --listen-addr=10.5.5.23 \
--join=10.5.5.21:26257

Change l’adresse IP avec la tienne.

Maintenant, le ‘node2’ et le ‘node3’ ont été ajoutés au cluster CockroachDB sécurisé. Vérifie-le depuis le serveur ‘node1’ en utilisant la commande suivante.

cockroach node status --host=10.5.5.21

Et tu obtiendras que trois serveurs différents sont en place et exécutent le Cockroach v2.1.6.

Ajoute un nœud au cluster

Étape 6 – Test

Pour cette dernière étape, nous allons tester notre installation CockroachDB Secure Cluster en accédant au tableau de bord d’administration et en testant la réplication de la base de données entre les serveurs.

Test du tableau de bord de CockroachDB

CockroachDB fournit une belle interface utilisateur de tableau de bord pour surveiller le cluster. Ouvre ton navigateur Web et tape l’adresse IP du serveur suivie du port 8080.

https://10.5.5.21:8080/

Et tu obtiendras la page de connexion CockroachDB comme ci-dessous.

Tableau de bord de CockroachDB

Afin de nous connecter au tableau de bord, nous devons créer un utilisateur sur la base de données CockroachDB.

Retourne à ton terminal ‘node1’ et connecte-toi au shell SQL cockroachdb en utilisant la commande suivante.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.21

Crée maintenant un nouvel utilisateur appelé ‘hakase’ avec le mot de passe ‘[email protected]#’ en utilisant la requête ci-dessous.

CREATE USER hakase WITH PASSWORD '[email protected]#';

Tape ‘\q’ pour quitter le shell SQL CockroachDB.

CockroachDB SQL shell

Retourne maintenant au navigateur Web et tape l’utilisateur ‘hakase’ avec le mot de passe ‘[email protected]#’ sur la page de connexion et clique sur le bouton Connexion.

Cockroach DB

Et tu obtiendras le tableau de bord d’administration de CockroachDB comme ci-dessous.

Aperçu des clusters

Test de la réplication de la base de données

Nous allons maintenant tester la réplication de la base de données entre les serveurs du cluster CockroachDB en créant la base de données sur le ‘node1’ et en vérifiant la base de données du ‘node2’ ou du ‘node3’.

Sur le ‘node1’, accède au shell SQL de CockroachDB en utilisant la commande suivante.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.21

Crée deux bases de données ‘hakasedb’ et ‘hakasedb2’ en utilisant les requêtes ci-dessous.

create database hakasedb;
create database hakasedb2;

Imprime maintenant la liste des bases de données et vérifie que tu obtiens les deux bases de données que nous venons de créer.

show databases;

Ligne cmd de Cockroach DB

Ensuite, connecte-toi au serveur ‘node2’ et accède au shell SQL CockroachDB en utilisant la commande suivante.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.22

Vérifie la liste des bases de données.

show databases;

Tu verras que ‘hakasedb’ et ‘hakasedb2’ ont été répliqués sur le serveur ‘node2’.

Afficher les bases de données

Et enfin, l’installation et la configuration de Secure CockroachDB Cluster à l’aide d’Ubuntu 18.04 ont été effectuées avec succès.

Vous aimerez aussi...