Cómo instalar Consul Server en AlmaLinux 9

Consul es una moderna plataforma de descubrimiento de servicios que te permite registrar servicios mediante DNS e interfaz HTTP. También ofrece una función de malla de servicios que permite conexiones seguras mediante TLS y proporciona autorización entre servicios. Además, Consul también proporciona una pasarela API para gestionar el acceso a los servicios y un almacén KV (Clave/Valor) para almacenar la configuración de los servicios.

En esta guía, te guiaremos paso a paso por la instalación de Consul Cluster con múltiples servidores en AlmaLinux 9.

Requisitos previos

Para completar esta guía, asegúrate de que tienes lo siguiente:

  • Dos o más servidores AlmaLinux dentro de la misma red.
  • Un usuario no root con privilegios de administrador.

Configuración del sistema

En este primer paso, prepararás tus servidores AlmaLinux para la instalación de Consul, lo que incluye:

  • Configurar Firewalld para abrir puertos.
  • Configurar SELinux en modo Permisivo.

Configurar Firewalld

Antes de instalar los paquetes, debes abrir puertos en tus servidores Consul. En el caso del sistema operativo basado en RHEL, utilizarás Firewalld para abrir los puertos.

Ejecuta el siguiente comando para abrir los puertos 8300, 8301, 8302, 8400, 8500 y 8600 en tus servidores AlmaLinux. Si tiene éxito, deberías obtener una salida como éxito.

sudo firewall-cmd --permanent --zone=public --add-port={8300,8301,8302,8400,8500,8600}/tcp

Ahora, recarga el firewalld utilizando el siguiente comando para que surta efecto.

sudo firewall-cmd --reload

Por último, verifica tus reglas firewalld utilizando el siguiente comando. Asegúrate de que los puertos 8300, 8301, 8302, 8400, 8500, 8600 están disponibles en tu firewalld.

sudo firewall-cmd --zone=public --list-all

configurar firewalld

Cambiar SELinux a Permisivo

Después de configurar firewalld, cambiarás el modo SELinux por defecto a permisivo. Esto generará registros de error en SELinux sin bloquear la acción.

Ejecuta el siguiente comando para cambiar el modo SELinux a permisivo.

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

A continuación, reinicia tus servidores para que surta efecto.

sudo reboot

Ahora que has configurado todos tus servidores AlmaLinux, puedes iniciar la instalación de Consul.

Configurar SELinux como permisivo

Instalación de Consul mediante DNF

Consul es una plataforma de red de servicios que soporta múltiples sistemas operativos. Además, Consul proporciona un repositorio de paquetes para distribuciones Linux, incluidas las basadas en RHEL. En este paso, instalarás Consul desde el repositorio de Consul mediante DNF.

Para empezar, instala algunos paquetes básicos ejecutando el siguiente comando. Introduce y para proceder a la instalación.

sudo dnf install dnf-plugins-core nano

instalar paquetes básicos

Ahora ejecuta el siguiente comando DNF para añadir el repositorio de Consul a tus servidores Alma Linux. A continuación, comprueba la lista de repositorios disponibles en cada servidor.

sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo dnf repolist

La siguiente salida demuestra que has añadido el repositorio HashiCorp a tus sistemas.

añadir repo hoshicorp

A continuación, instala Consul ejecutando el siguiente comando. Escribe y para proceder a la instalación de Consul.

sudo dnf install consul

instalar cónsul

Una vez finalizada la instalación, ejecuta el siguiente comando para localizar el archivo binario de Consul y comprobar su versión.

which consul
consul version

La salida que aparece a continuación confirma que el archivo binario de Consul está disponible en /bin/consul, y que la versión actual de Consul es la 1.17.

verificar cónsul

Configurar Consul

Llegados a este punto, ya has instalado Consul en todos tus servidores AlmaLinux. Empecemos a configurar el clúster de Consul con múltiples servidores sin más preámbulos. Para ilustrarlo, utilizaremos tres servidores AlmaLinux.

|  Hostname  |    IP Address   |
| ---------  |  -------------- |
|  consul1   |  192.168.10.41  |
|  consul2   |  192.168.10.42  |
|  consul3   |  192.168.10.43  |

En primer lugar, detén el servicio cónsul en cada servidor ejecutando el siguiente comando.

sudo systemctl stop consul

Desplázate al servidor consul1 y ejecuta el siguiente comando para generar una nueva clave para el clúster Consul. Asegúrate de conservar la clave generada.

consul keygen

generar clave

En todos tus servidores Consul, abre la configuración por defecto de Consul /etc/consul.d/consul.hcl utilizando el siguiente comando del editor nano.

sudo nano /etc/consul.d/consul.hcl

Cambia la configuración por defecto por la siguiente y ten en cuenta algunos parámetros que aparecen a continuación:

  • Servidor: True significa que el nodo actuará como servidor de Consul.
  • advertise_addr: Cámbialo por la dirección IP correspondiente del servidor Consul.
  • bootstrap_expect: ¿Cuántos servidores tendría tu cluster?
  • encriptar: Cada servidor debe tener la misma clave.
  • retry_join: Introduce las direcciones IP del cluster Consul en este parámetro.
# Full configuration options can be found at https://www.consul.io/docs/agent/config
# datacenter
datacenter = "kitty-dc1"

# data_dir
# This flag provides a data directory for the agent to store state.
data_dir = "/opt/consul"

# client_addr
# The address to which the Consul will bind client interfaces, including the HTTP and DNS
# servers.
client_addr = "0.0.0.0"

# ui
# Enables the built-in web UI server and the required HTTP routes.
ui_config{
enabled = true
}

# default domain
domain = "consul"

# enable dns_config
dns_config{
enable_truncate = true
only_passing = true
}

# server
# This flag is used to control if an agent is in server or client mode. When provided,
# an agent will act as a Consul server. Each Consul cluster must have at least one
# server and ideally no more than 5 per datacenter. All servers participate in the Raft
# consensus algorithm to ensure that transactions occur in a consistent, linearizable
# manner. Transactions modify cluster state, which is maintained on all server nodes to
# ensure availability in the case of node failure. Server nodes also participate in a
# WAN gossip pool with server nodes in other datacenters. Servers act as gateways to
# other datacenters and forward traffic as appropriate.
server = true

# Advertise addr - if you want to point clients to a different address than bind or LB.
advertise_addr = "192.168.10.41"

# bootstrap_expect
# This flag provides the number of expected servers in the datacenter.
bootstrap_expect=3

# encrypt
# Specifies the secret key to use for encryption of Consul network traffic.
encrypt = "jFtV8jj4h1hnXGqTllWH+sOqLo/tw9xnnfDHcVxVnYg="

# retry_join
retry_join = ["192.168.10.41", "192.168.10.42", "192.168.10.43"]

Guarda el archivo y sal de él cuando hayas terminado.

A continuación, ejecuta el siguiente comando para verificar la configuración de Consul. Si la sintaxis es correcta, deberías obtener una salida como «La configuración es válida«.

sudo consul validate /etc/consul.d/

validar cónsul

Ahora ejecuta el siguiente comando para iniciar y habilitar el servicio Consul.

sudo systemctl start consul
sudo systemctl enable consul

A continuación, verifica el cónsul utilizando el siguiente comando para asegurarte de que el servicio se ejecuta.

sudo systemctl status consul

En la siguiente salida, deberías ver que Consul se está ejecutando en el servidor consul1.

consul1 en marcha

En la siguiente salida, deberías ver que Consul se está ejecutando en el servidor consul2.

cónsul2 corriendo

En la siguiente salida, deberías ver que Consul se está ejecutando en el servidor consul3.

consul3 en marcha

Interacción con el clúster Consul

Ahora que tienes el clúster Consul configurado en los servidores AlmaLinux, puedes verificar e interactuar con el clúster Consul a través de la línea de comandos consul.

Comprobación del clúster Consul

Ejecuta el siguiente comando para comprobar el servidor Consul disponible dentro del clúster.

consul members

En este ejemplo, el clúster Consul está compuesto por tres servidores, consul1, consul2 y consul3.

lista de miembros del cónsul

También puedes verificar la lista de pares en el Cluster utilizando el comando siguiente.

consul operator raft list-peers

A continuación puedes ver información detallada sobre cada servidor Cónsul, incluyendo el ID, el estado, el votante y la versión de RaftProtocol.

lista cónsules pares

Añadir el Almacén KV (Clave-Valor) a Consul

A continuación, ejecuta el siguiente comando de Consul para crear una nueva base de datos clave-valor. En este ejemplo, crearás una nueva clave db_name con el valor testdb.

consul kv put consul/configuration/db_name testdb

Ahora ejecuta el comando siguiente para recuperar el valor de db_name.

consul kv get consul/configuration/db_name

Deberías obtener el valor testdb como el siguiente:

añadir kv cónsul

Interactuar con DNS en Consul

En esta guía, has habilitado el DNS de Consul. Para comprobar la configuración del DNS de Consul, utiliza el comando dig que aparece a continuación.

dig @127.0.0.1 -p 8600 consul.service.consul

En este ejemplo, has configurado los servidores Consul dentro del clúster con el mismo nombre de dominio que consul. Lo siguiente confirma que el dominio consul.service.consul con los registros A 192.168.10.41, 192.168.10.42, 192.168.10.43.

consul dns

Acceder a la interfaz de usuario (Web UI) de Consul

Por último, abre tu navegador web y visita la dirección IP del servidor de Consul con el puerto 8500, por ejemplo: http: //192.168.10.41:8500/ui/, para acceder al panel de administración web de Consul.

A continuación deberías ver los servidores disponibles en el clúster de Consul.

cónsul web ui

Ahora, haz clic en el menú Nodos para obtener información detallada sobre cada servidor.

lista de nodos

A continuación, haz clic en el menú Clave/Valor para obtener la lista de KV disponibles en tus servidores Consul.

cheque kv

Conclusión

Para terminar, has completado la instalación paso a paso del clúster Consul con tres servidores AlmaLinux. Has habilitado la Interfaz Web de Consul y el DNS de Consul en el clúster. Por último, también has aprendido algunos comandos básicos para interactuar con clústeres Consul, almacenes de valores clave y DNS.

A partir de aquí, ya puedes activar las ACL (Listas de Control de Acceso) e implementar TLS para las conexiones entre servidores y clientes de Consul.

También te podría gustar...