Cómo instalar el clúster CockroachDB en Ubuntu 24.04

CockroachDB es una base de datos SQL distribuida altamente resistente y escalable, diseñada para manejar fácilmente cargas de trabajo de datos a gran escala. Cuando se instala en Ubuntu, proporciona una solución de base de datos de código abierto y nativa de la nube que ofrece una gran coherencia, alta disponibilidad y escalabilidad horizontal. La arquitectura de CockroachDB le permite replicar y distribuir automáticamente los datos entre varios nodos, garantizando la integridad de los datos y minimizando el tiempo de inactividad a pesar de los fallos de hardware. Su compatibilidad con PostgreSQL lo convierte en una opción versátil para los desarrolladores que buscan un sistema de base de datos robusto, capaz de gestionar aplicaciones exigentes. Instalar CockroachDB en Ubuntu permite a los usuarios aprovechar estas funciones avanzadas al tiempo que se benefician de la seguridad y estabilidad del sistema operativo Ubuntu.

CockroachDB almacena tus datos en varias ubicaciones, lo que agiliza la entrega de datos. Además, es fácil de escalar y proporciona alta disponibilidad y tolerancia a fallos para tus aplicaciones.

En esta guía, te mostraremos cómo instalar el clúster CockroachDB en servidores Ubuntu 24.04.

Requisitos previos

Antes de continuar, asegúrate de que tienes lo siguiente:

  • Dos o tres servidores Ubuntu 24.04.
  • Un usuario no root con privilegios de administrador.

Configurar el usuario

Antes de instalar CockroachDB, crearás un nuevo usuario y grupo del sistema cockroach. Esto se utilizará para ejecutar el servicio CockroachDB.

En primer lugar, ejecuta el siguiente comando para añadir un nuevo usuario de sistema cockroach con el directorio raíz /opt/cockroachdb.

sudo adduser –home /opt/cockroachdb –system –group cockroach

Ahora cambia la propiedad del directorio /opt/cockroachdb al usuario y grupo cockroach con lo siguiente:

sudo chown -R cucaracha:cucaracha /opt/cucarachadb

CONFIGURAR USUARIO

Descarga del binario de CockroachDB

Para instalar CockroachDB, puedes descargarlo fácilmente de la página de GitHub y mover el archivo binario de CockroachDB al directorio bin de tu sistema Ubuntu.

Visita la página de GitHub de CockroachDB y coge el enlace de la última versión. Descárgalo con el comando wget de la siguiente manera:

wget https://binaries.cockroachdb.com/cockroach-v24.1.1.linux-amd64.tgz

Una vez finalizada la descarga, extrae CockroachDB y mueve el archivo binario cockroach al directorio /usr/bin.

tar -xf cockroach-v24.1.1.linux-amd64.tgz
cp -i cockroach-*/cockroach /usr/bin/

Ahora comprueba la versión de CockroachDB con lo siguiente:

cockroach –version

En el siguiente resultado, puedes ver que CockroachDB v24 está instalado.

instalar cockroachdb

Generar certificados TLS

Para crear un cluster CockroachDB, debes generar un certificado SSL/TLS para asegurar el cluster. Necesitas generar y distribuir certificados CA entre los servidores, y luego generar certificados para usuarios y servidores.

Antes de seguir adelante, ejecuta el siguiente comando tanto en server1 como en server2. Con esto, crearás los directorios certs y private para los certificados TLS de cadena.

mkdir -p /opt/cockroachdb/{certificados,privados}

Generar certificado CA

En esta sección, generarás un certificado CA desde server1 y lo subirás a server2 a través de scp o de una copia segura.

En server1, ejecuta el siguiente comando para generar certificados CA (Autoridad de Certificación). Se generará el certificado CA ca.crt y ca.key.

cockroach cert create-ca
-certs-dir=/opt/cockroachdb/certs
-ca-key=/opt/cockroachdb/private/ca.key

crear ca

Ahora sube los ca.crt y ca.key al server2 con el scp o copia segura. Asegúrate de que puedes iniciar sesión en server2 sin problemas.

scp /opt/cockroachdb/privado/ca.key [email protected]:/opt/cockroachdb/private/
scp /opt/cockroachdb/certs/ca.crt [email protected]:/opt/cockroachdb/certs/

copiar ca al servidor2

Generar certificado de cliente

Tras generar el certificado CA, generarás un certificado de cliente para gestionar el clúster CockroachDB. Sólo los usuarios que dispongan de este certificado podrán conectarse y gestionar el clúster CockroachDB.

Para generar y firmar el certificado de cliente para el usuario rootEjecuta el siguiente comando cockroach.

cockroach cert create-client \
root \
–certs-dir=/opt/cockroachdb/certs \
–ca-key=/opt/cockroachdb/private/ca.key

crear certificado de cliente

Generar certificados de servidor

En esta sección, generarás certificados de servidor tanto en server1 como en server2.

En server1, ejecuta el siguiente comando para generar el certificado de servidor. Asegúrate de cambiar la dirección IP y el nombre de host con tu información.

cockroach cert create-node \
server1 \
192.168.5.15 \
localhost \
–certs-dir=/opt/cockroachdb/certs \
–ca-key=/opt/cockroachdb/private/ca.key

crear certificado servidor1

Ahora, pasa a server2 y genera un certificado de nodo con lo siguiente. Cambia la dirección IP y el nombre de host con la información de server2.

cockroach cert create-node \
server2 \
192.168.5.16 \
localhost \
–certs-dir=/opt/cockroachdb/certs \
–ca-key=/opt/cockroachdb/private/ca.key

crear certificado servidor2

Por último, ejecuta el siguiente comando tanto en server1 como en server2 para cambiar la propiedad de los directorios certs y private al usuario cockroach.

sudo chown -R cockroach:cockroach /opt/cockroachdb/{certs,private}

Ejecutar CockroachDB como servicio

Una vez que hayas generado los certificados SSL/TLS, crearás un archivo de servicio systemd para cada servidor CockroachDB. Esto te permitirá ejecutar CockroachDB en segundo plano y podrás gestionarlo fácilmente con systemctl.

Crea un nuevo archivo de servicio systemd /etc/systemd/system/cockroachdb.service con el editor nano.

sudo nano /etc/systemd/system/cockroachdb.service

En la opción server1, introduce la configuración que aparece a continuación. En la opción --advertise-addr, introduce la dirección IP de server1. En la opción --join, introduce las direcciones IP server1 y server2.

[Unit]
Description=Cockroach Database cluster node
Requires=network.target

[Service]
Type=notify
WorkingDirectory=/opt/cockroachdb
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.15 --join=192.168.5.15,192.168.5.16
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach

[Install]
WantedBy=default.target

Para server2, introduce la configuración que aparece a continuación. En la opción --advertise-addr, introduce la dirección IP server2. En la opción --join, introduce las direcciones IP server1 y server2.

[Unit]
Description=Cockroach Database cluster node
Requires=network.target

[Service]
Type=notify
WorkingDirectory=/opt/cockroachdb
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.16 --join=192.168.5.15,192.168.5.16
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach

[Install]
WantedBy=default.target

Guarda y sal del archivo cuando hayas terminado.

Ahora ejecuta el siguiente comando systemctl para recargar el gestor systemd y aplicar tus cambios.

sudo systemctl daemon-reload

Y luego inicia y habilita el servicio cockroachdb en los servidores server1 y server2.

sudo systemctl enable –now cockroachdb

servicio de configuración

Por último, comprueba el estado del servicio cockroachdb con lo siguiente:

sudo systemctl status cockroachdb

Verás que el servicio cockroachdb se está ejecutando en los servidores server1 y server2.

comprobar servicio

Creación del clúster CockroachDB

Así pues, CockroachDB se está ejecutando tanto en server1 como en server2. Ahora puedes inicializar el clúster CockroachDB desde uno de estos servidores.

En server1, ejecuta el siguiente comando cockroach init para inicializar el clúster CockroachDB. Si tiene éxito, verás una salida Cluster successfully initialized.

cockroach init –certs-dir=/opt/cockroachdb/certs –host=192.168.5.15:26257

Ahora ejecuta el siguiente comando para comprobar el registro de inicialización del clúster. Si el clúster CockroachDB se está ejecutando, obtendrás la salida CockroachDB node starting.

grep ‘nodo iniciando’ /opt/cockroachdb/cockroach-data/logs/cockroach.log -A 11

inicializar clúster

A continuación, ejecuta el siguiente comando cockroach para verificar la lista de servidores y el estado del clúster CockroachDB.

sudo cockroach node –certs-dir=/opt/cockroachdb/certs –host=server1 ls
sudo cockroach node –certs-dir=/opt/cockroachdb/certs –host=server1 status

Puedes ver a continuación que server1 y server2 están disponibles en el clúster CockroachDB con el estado active.

comprobar el estado del clúster

Ahora ejecuta el siguiente comando cockroach sql para acceder al shell de CockroachDB. Desde aquí puedes gestionar la base de datos y el usuario en el clúster CockroachDB.

sudo cockroach sql –certs-dir=/opt/cockroachdb/certs –host=servidor1:26257

Ejecuta las siguientes consultas para crear un nuevo usuario administrador alice con la contraseña p4ssw0rd.

CREAR USUARIO alice CON CONTRASEÑA ‘p4ssw0rd’;
GRANT admin TO alice;

Escribe quit para salir del servidor CockroachDB.

crear usuario administrador

Acceder a la administración web de CockroachDB

Por defecto, la administración web de CockroachDB se ejecuta en el puerto 8080. Esto te permite administrar CockroachDB a través de un navegador web.

Para acceder al panel de administración web de CockroachDB, visita http://server1:8080 utilizando tu navegador web. Introduce tu nombre de usuario y contraseña, y haz clic en Iniciar sesión.

panel de acceso

Si tienes el nombre de usuario y la contraseña correctos, verás el panel de administración de CockroachDB como el siguiente:

salpicadero

Conclusión

¡Enhorabuena! Has completado la instalación del clúster CockroachDB en el servidor Ubuntu 24.04. También has aprendido a comprobar el estado del clúster CockroachDB a través de la línea de comandos y del panel de administración web. Por último, has creado un usuario administrador a través del intérprete de comandos SQL de CockroachDB.

También te podría gustar...