GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment déployer le cluster Secure CockroachDB sur le serveur Ubuntu

CockroachDB est une base de données SQL open source et native du cloud développée par CockroachLabs. Il s'agit d'une base de données SQL distribuée construite sur le magasin transactionnel et clé-valeur. CockroachDB est une base de données SQL évolutive qui a été comparée à la base de données Google Spanner. Il est basé sur le fil de protocole PostgreSQL et prêt pour la production.

Dans ce tutoriel, nous allons vous montrer comment configurer le cluster Secure CockroachDB sur Ubuntu 18.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 exécuter 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

Qu'allons-nous faire ?

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

Étape 1 - Configurer le serveur NTP avec Chrony

Tout d'abord, nous devons synchroniser l'heure entre les serveurs du cluster. Nous devons donc installer le package NTP sur tous les serveurs. Et pour ce guide, nous utiliserons chrony.

Installez le package chrony sur tous les serveurs à l'aide de la commande suivante.

sudo apt install chrony -y

Une fois l'installation terminée, allez dans le répertoire de configuration '/etc/chrony/' et éditez le fichier 'chrony.conf'.

cd /etc/chrony/
vim chrony.conf

Supprimez le pool NTP par défaut et remplacez-le par votre propre pool de pays.

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

Enregistrez et fermez.

Redémarrez maintenant le service chrony, puis ajoutez chrony au service de démarrage.

systemctl restart chrony
systemctl enable chrony

En conséquence, le temps entre les serveurs sera synchronisé sur les mêmes serveurs de pool NTP.

Étape 2 - Télécharger et installer CockroachDB

Dans cette étape, nous allons télécharger et installer CockroachDB sur tous les serveurs. Alors, exécutez toutes les commandes sur tous vos serveurs de cluster.

Créez un nouveau répertoire appelé 'binary' et entrez-y.

mkdir -p binary; cd binary

Téléchargez le fichier binaire compressé cockroachdb pour Linux et extrayez-le.

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

Copiez maintenant le fichier binaire 'cockroach' dans le répertoire '/etc/local/bin'.

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

Après cela, vous pouvez exécuter la commande "cafard" 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.

É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 de génération pour l'utilisateur root et le certificat pour chaque nœud du cluster.

Créez le répertoire de certificat '~/.cockroach-certs' et la variable d'environnement correspondante.

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

Créer une autorité de certification et copier sur tous les nœuds

Sur le serveur 'node1', créez 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

Et vous obtiendrez le 'ca.key' et 'ca.crt' dans le répertoire '~/.cockroach-certs'.

Après cela, copiez le certificat et la clé ca sur tous les serveurs à l'aide de la commande scp comme ci-dessous.

Copiez sur le serveur 'node2'.

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

Copiez sur le serveur 'node3'.

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

Assurez-vous maintenant que le certificat et la clé de l'autorité de certification sont téléchargés sur tous les serveurs hôtes.

Créer des certificats 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érez 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

Et vous obtiendrez des certificats client pour l'utilisateur root 'client.root.crt' et 'client.root.key'.

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é, vous devez générer des certificats de serveur pour chaque serveur.

Sur le 'node1', créez le certificat du 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

Remplacez l'adresse IP par la vôtre.

Sur le 'node2', créez le certificat du 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

Remplacez l'adresse IP par la vôtre.

Sur le 'node3', créez le certificat du 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

Remplacez l'adresse IP par la vôtre.

Vous obtiendrez maintenant les certificats de serveur 'node.crt' et 'node.key' dans le répertoire '~/.cockroach-certs'.

Étape 4 - Démarrer le cluster Secure CockroachDB

Après avoir créé des certificats SSL, nous allons initialiser le cluster Secure CockroachDB à partir du serveur 'node1'.

Exécutez 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

Assurez-vous qu'il n'y a pas d'erreur.

Après cela, vérifiez l'état du nœud du cluster en exécutant la commande cockroach ci-dessous.

cockroach node status --host=10.5.5.21

Vous obtiendrez le node1 avec l'adresse IP 10.5.5.21 est opérationnel avec CockroachDB v2.1.6.

Étape 5 - Ajouter un nœud au cluster

Ensuite, nous ajouterons le 'node2' et le 'node3' au cluster sécurisé CockroachDB.

Assurez-vous que l'autorité de certification et le certificat du serveur se trouvent dans le répertoire ~/.cockroach-certs.

ls -lah ~/.cockroah-certs/

Exécutez maintenant la commande suivante pour ajouter le 'node2' avec l'adresse IP 10.5.5.22. Ajoutez-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 terminé, accédez au 'node3' et exécutez 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

Remplacez l'adresse IP par la vôtre.

Maintenant, le 'node2' et le 'node3' ont été ajoutés au cluster Secure CockroachDB. Vérifiez-le à partir du serveur 'node1' à l'aide de la commande suivante.

cockroach node status --host=10.5.5.21

Et vous obtiendrez trois serveurs différents qui exécutent le cafard v2.1.6.

Étape 6 - Tester

Pour cette dernière étape, nous testerons notre installation de 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 CockroachDB

Le CockroachDB fournit une belle interface utilisateur de tableau de bord pour surveiller le cluster. Ouvrez votre navigateur Web et tapez l'adresse IP du serveur suivie du port 8080.

https://10.5.5.21:8080/

Et vous obtiendrez la page de connexion CockroachDB comme ci-dessous.

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

Revenez à votre terminal 'node1' et connectez-vous au shell SQL cockroachdb à l'aide de la commande suivante.

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

Créez 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]#';

Tapez '\q' pour quitter le shell SQL CockroachDB.

Revenez maintenant au navigateur Web et saisissez l'utilisateur "hakase" avec le mot de passe "[email protected]#" sur la page de connexion, puis cliquez sur le bouton de connexion.

Et vous obtiendrez le tableau de bord d'administration CockroachDB comme ci-dessous.

Tester 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 à partir de 'node2' ou 'node3'.

Sur le 'node1', accédez au shell SQL CockroachDB à l'aide de la commande suivante.

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

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

create database hakasedb;
create database hakasedb2;

Maintenant, imprimez la liste des bases de données et assurez-vous d'obtenir les deux bases de données que nous venons de créer.

show databases;

Ensuite, connectez-vous au serveur 'node2' et accédez au shell SQL CockroachDB à l'aide de la commande suivante.

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

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

show databases;

Et vous obtiendrez 'hakasedb' et 'hakasedb2' a été répliqué sur le serveur 'node2'.

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


Ubuntu
  1. Comment déployer Odoo 11 sur Ubuntu 18.04

  2. Comment installer MySQL sur Ubuntu 18.04

  3. Comment déployer Rocket.Chat sur Ubuntu 18.04

  4. Comment déployer Mattermost sur Ubuntu 18.04

  5. Comment configurer un serveur OpenVPN sur Ubuntu 18.04

Comment configurer un serveur FTP sécurisé avec Pure-FTPd sur Ubuntu

Comment installer Plex Media Server sur un serveur/bureau Ubuntu 16.04

Comment installer Jellyfin Media Server sur le serveur/bureau Ubuntu 20.04 LTS

Comment installer Plex Media Server sur le serveur/bureau Ubuntu 20.04 LTS

Comment déployer un serveur TeamSpeak sur Ubuntu 20.04

Comment sécuriser Nginx avec Let's Encrypt sur Ubuntu 20.04