GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come distribuire Secure CockroachDB Cluster su Ubuntu Server

CockroachDB è un database SQL open source e nativo per il cloud sviluppato da CockroachLabs. È un database SQL distribuito basato sull'archivio transazionale e valore-chiave. CockroachDB è un database SQL scalabile che è stato confrontato con il database di Google Spanner. È basato sul protocollo PostgreSQL e pronto per la produzione.

In questo tutorial, ti mostreremo come configurare il cluster Secure CockroachDB su Ubuntu 18.04. Imparerai come configurare il cluster sicuro, accedere alla dashboard di amministrazione di CockroachDB, creare un nuovo utente su CockroachDB, creare e mostrare database su CockroachDB.

Prerequisiti

Per eseguire il cluster CockroachDB, abbiamo bisogno di più server. E utilizzeremo tre server Ubuntu 18.04 con il nome host e l'indirizzo IP dettagliati come di seguito.

node1   10.5.5.21
node2   10.5.5.22
node3   10.5.5.23

Cosa faremo?

  • Imposta il server NTP con Chronysystemctl riavvia chrony
    systemctl abilita chrony
  • Scarica e installa CockroachDB
  • Crea certificati
  • Inizializza il cluster CockroachDB
  • Aggiungi nodo al cluster CockroachDB
  • Test

Passaggio 1:configurazione del server NTP con Chrony

In primo luogo, dobbiamo mantenere sincronizzato il tempo tra i server sul cluster. Quindi, dobbiamo installare il pacchetto NTP su tutti i server. E per questa guida useremo chrony.

Installa il pacchetto chrony su tutti i server usando il comando seguente.

sudo apt install chrony -y

Una volta completata l'installazione, vai nella directory di configurazione '/etc/chrony/' e modifica il file 'chrony.conf'.

cd /etc/chrony/
vim chrony.conf

Elimina il pool NTP predefinito e sostituiscilo con il pool del tuo paese.

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

Salva e chiudi.

Ora riavvia il servizio chrony e quindi aggiungi chrony al servizio di avvio.

systemctl restart chrony
systemctl enable chrony

Di conseguenza, il tempo tra i server verrà sincronizzato con gli stessi server del pool NTP.

Passaggio 2:scarica e installa CockroachDB

In questo passaggio, scaricheremo e installeremo CockroachDB su tutti i server. Quindi, esegui tutti i comandi su tutti i tuoi server cluster.

Crea una nuova directory chiamata 'binary' ed entra.

mkdir -p binary; cd binary

Scarica il file binario compresso cockroachdb per Linux ed estrailo.

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

Ora copia il file binario 'scarafaggio' nella directory '/etc/local/bin'.

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

Successivamente, puoi eseguire il comando "scarafaggio" ed esplorare il comando di base per assistenza, controllare la versione ecc.

cockroach version

Il CockroachDB è stato installato su tutti i server.

Passaggio 3:crea certificati

Ora genereremo alcuni certificati per proteggere il cluster CockrouchDB. Possiamo usare OpenSSL o la riga di comando dello scarafaggio per generare file di certificato.

Genereremo il certificato CA e la chiave e il certificato per la radice dell'utente e il certificato per ogni nodo del cluster.

Crea la directory del certificato '~/.cockroach-certs' e la relativa variabile di ambiente.

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

Crea CA e copia su tutti i nodi

Sul server 'nodo1', crea l'autorità di certificazione utilizzando il comando scarafaggio riportato di seguito.

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

E otterrai 'ca.key' e 'ca.crt' nella directory '~/.cockroach-certs'.

Successivamente, copia il certificato ca e la chiave su tutti i server utilizzando il comando scp come di seguito.

Copia sul server 'nodo2'.

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

Copia sul server 'node3'.

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

Ora assicurati che il certificato CA e la chiave siano caricati su tutti i server host.

Crea certificati cliente

Dopo aver creato l'autorità di certificazione, è necessario generare il certificato client. Il certificato client verrà utilizzato per proteggere la comunicazione tra la shell SQL incorporata e il cluster.

Genera il certificato client su tutti i server utilizzando il seguente comando scarafaggio.

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

E otterrai i certificati client per l'utente root 'client.root.crt' e 'client.root.key'.

Crea certificati server

I certificati del server verranno utilizzati per proteggere la comunicazione tra i server nel cluster CockroachDB. E per entrare a far parte del cluster sicuro, devi generare certificati server per ogni server.

Sul 'nodo1', crea il certificato del server usando il seguente comando.

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

Modifica l'indirizzo IP con il tuo.

Sul 'nodo2', crea il certificato del server usando il seguente comando.

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

Modifica l'indirizzo IP con il tuo.

Sul 'nodo3', crea il certificato del server usando il seguente comando.

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

Modifica l'indirizzo IP con il tuo.

Ora otterrai i certificati del server 'node.crt' e 'node.key' nella directory '~/.cockroach-certs'.

Passaggio 4:avviare il cluster Secure CockroachDB

Dopo aver creato alcuni certificati SSL, inizializzeremo il cluster Secure CockroachDB dal server 'nodo1'.

Esegui il seguente comando sul server 'nodo1'.

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

Assicurati che non ci siano errori.

Successivamente, controlla lo stato del nodo del cluster eseguendo il comando scarafaggio di seguito.

cockroach node status --host=10.5.5.21

Otterrai il nodo1 con l'indirizzo IP 10.5.5.21 attivo e funzionante con CockroachDB v2.1.6.

Passaggio 5:aggiungi un nodo al cluster

Successivamente, aggiungeremo il "nodo2" e il "nodo3" al cluster protetto di CockroachDB.

Assicurati che la CA e il certificato del server si trovino nella directory ~/.cockroach-certs.

ls -lah ~/.cockroah-certs/

Ora esegui il seguente comando per aggiungere il 'nodo2' con l'indirizzo IP 10.5.5.22. Aggiungilo al 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

Una volta completato, vai al 'nodo3' ed esegui il comando seguente.

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

Modifica l'indirizzo IP con il tuo.

Ora il "nodo2" e il "nodo3" sono stati aggiunti al cluster Secure CockroachDB. Controllalo dal server 'nodo1' usando il seguente comando.

cockroach node status --host=10.5.5.21

E otterrai tre diversi server attivi e in esecuzione lo scarafaggio v2.1.6.

Fase 6 - Test

Per quest'ultimo passaggio, testeremo la nostra installazione di CockroachDB Secure Cluster accedendo alla dashboard dell'amministratore e testando la replica del database tra i server.

Test del dashboard di CockroachDB

CockroachDB fornisce una bellissima interfaccia utente dashboard per monitorare il cluster. Apri il tuo browser web e digita l'indirizzo IP del server seguito dalla porta 8080.

https://10.5.5.21:8080/

E otterrai la pagina di accesso di CockroachDB come di seguito.

Per accedere alla dashboard, dobbiamo creare un utente nel database CockroachDB.

Torna al tuo terminale 'node1' e accedi alla shell SQL di cockroachdb usando il seguente comando.

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

Ora crea un nuovo utente chiamato "hakase" con la password "[email protected]#" utilizzando la query seguente.

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

Digita '\q' per uscire dalla shell SQL di CockroachDB.

Ora torna al browser web e digita l'utente 'hakase' con la password '[email protected]#' nella pagina di accesso e fai clic sul pulsante Accedi.

E otterrai la dashboard di amministrazione di CockroachDB come di seguito.

Test della replica del database

Ora testeremo la replica del database tra i server nel cluster CockroachDB creando il database sul 'nodo1' e controllando il database da 'nodo2' o 'nodo3'.

Sul 'nodo1', accedi alla shell SQL di CockroachDB usando il comando seguente.

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

Crea due database "hakasedb" e "hakasedb2" utilizzando le query seguenti.

create database hakasedb;
create database hakasedb2;

Ora stampa l'elenco dei database e assicurati di ottenere due database che abbiamo appena creato.

show databases;

Quindi, accedi al server 'node2' e accedi alla shell SQL di CockroachDB utilizzando il comando seguente.

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

Controlla l'elenco dei database.

show databases;

E otterrai 'hakasedb' e 'hakasedb2' è stato replicato sul server 'node2'.

Infine, l'installazione e la configurazione di Secure CockroachDB Cluster utilizzando Ubuntu 18.04 è stata completata con successo.


Ubuntu
  1. Come distribuire Odoo 11 su Ubuntu 18.04

  2. Come installare MySQL su Ubuntu 18.04

  3. Come distribuire Rocket.Chat su Ubuntu 18.04

  4. Come distribuire Mattermost su Ubuntu 18.04

  5. Come configurare un server OpenVPN su Ubuntu 18.04

Come configurare un server FTP sicuro con Pure-FTPd su Ubuntu

Come installare Plex Media Server su Ubuntu 16.04 Server/Desktop

Come installare Jellyfin Media Server su Ubuntu 20.04 LTS Server/Desktop

Come installare Plex Media Server su Ubuntu 20.04 LTS Server/Desktop

Come distribuire un server TeamSpeak su Ubuntu 20.04

Come proteggere Nginx con Let's Encrypt su Ubuntu 20.04