Configuración de Clúster Angie#
Esta guía describe el proceso de crear un clúster Angie tolerante a fallos
con sincronización automática de configuración
y conmutación por error de direcciones IP virtuales. El primer paso es preparar todos los nodos del clúster
configurando cuentas de usuario
y asegurando el acceso seguro entre servidores. Crear un usuario en todos los nodos
(por ejemplo, Establecer una contraseña si es necesario: Nota En algunos sistemas operativos (por ejemplo, Alt Linux),
debe agregar el usuario al grupo Para trabajar con Configurar sudo sin contraseña: En el nodo maestro, crear claves SSH y copiarlas a los nodos de respaldo: Advertencia Antes de copiar las claves SSH, asegúrese de que el
archivo Después de configurar el acceso basado en claves, establezca el valor a Nota Para la sincronización cruzada de la configuración de Angie, copie las claves del usuario
a todos los nodos: Después de preparar los nodos, necesita instalar los componentes principales del clúster:
Angie PRO y el paquete de sincronización de configuración. Configure el repositorio en todos los nodos
según las instrucciones del paquete para su sistema. Nota Al instalar el paquete En todos los nodos, instale el paquete usando el gestor de paquetes de su SO: El siguiente paso es configurar la sincronización automática de archivos de configuración
entre los nodos del clúster. Nota Principios de sincronización: La sincronización se realiza vía Solo ocurre cuando el servicio Angie está ejecutándose. Se ejecuta manualmente (comando Funciona en una dirección: del nodo maestro al de respaldo. Crear una configuración de Dependiendo del SO, iniciar el daemon: Editar Nota Para sincronización cruzada,
complete la lista Agregar un bloque de verificación de salud a la configuración de Angie
( Iniciar Angie: Iniciar sincronización: Nota El script verificará automáticamente la configuración, realizará sincronización con todos
los nodos, y la aplicará. Para la conmutación automática por error entre nodos del clúster, se usa Keepalived —
un servicio para gestionar direcciones IP virtuales (VIP). Nota Si el paquete Para vincular procesos a direcciones IP no locales,
permita al sistema realizar las acciones correspondientes: Más detalles:
https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt#ip_nonlocal_bind Suponga que VIP Si Angie escucha en esta VIP ( En el nodo maestro ( En el nodo de respaldo: Nota En la sección Iniciar el servicio: Examinemos en detalle los elementos principales de la configuración de Keepalived
para entender los principios de funcionamiento del clúster. La configuración incluye dos partes: Elementos principales: Nota Si el nodo maestro original se recupera,
recuperará el rol MASTER (mayor prioridad).
Para deshabilitar el failback, use el parámetro Después de completar la configuración, es necesario probar el funcionamiento del clúster
y asegurar la conmutación correcta entre nodos. Verifica el estado del VIP: Prueba la tolerancia a fallos: Detén Angie en el nodo maestro: Verifica la transición del VIP al nodo de respaldo: Inicia Angie en el nodo maestro nuevamente: Después de esto, el VIP debería regresar al nodo maestro.Preparación de Nodos del Clúster para Sincronización#
Configuración de Usuarios y Permisos de Acceso#
user
) con privilegios sudo
:$ sudo adduser user
$ sudo passwd user
wheel
:$ sudo usermod -a -G wheel user
rsync
cuando MAC está habilitado en Astra Linux, establecer
el nivel de integridad correcto:$ sudo pdpl-user -i 63 user
$ echo "user ALL=(ALL:ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers
$ su - user
$ ssh-keygen -t rsa
$ ssh-copy-id user@node2_hostname
/etc/ssh/sshd_config
tenga la opción:PasswordAuthentication yes
no
para mejorar
la seguridad.$ scp -p .ssh/id_rsa* user@node2_hostname:.ssh/
Instalación de Angie PRO y angie-ha-sync#
Instalación de angie-ha-sync#
angie-ha-sync
en un sistema limpio,
el paquete angie
también se instalará como dependencia.$ sudo {apk|apt|pkg|yum|zypper} {add|install} angie-ha-sync
Configuración de Sincronización de Configuración#
rsync
.angiehasync -Sd
).rsync
se ejecuta en modo daemon.Configuración de
rsync
#rsync
(/etc/rsyncd.conf
) en los nodos:[angie] # Directorio con configuración de Angie
path = /etc/angie
# Usuario para sincronización
uid = user
# Grupo de usuario
gid = user
# IP o subred desde la cual se permiten conexiones
hosts allow = 10.21.8.0/24
# Denegar todos los demás
hosts deny = *
$ sudo service rsyncd start # o $ sudo service rsync start
Configuración del Archivo de Sincronización#
/etc/angiehasync/angiehasync.conf
:M_NODE="<node1_hostname>" # Nombre de host o IP de este nodo
TARGET_HOSTS="<node2_hostname>" # Lista de hosts/IPs para sincronización (separados por espacios).
# Puede omitirse en nodos de respaldo.
SSH_USER="user" # Usuario para sincronización (con privilegios de administrador)
SSH_ID="/home/$SSH_USER/.ssh/id_rsa" # Ruta a la clave privada
TARGET_HOSTS
en todos los nodos;
sin embargo, no incluya el nodo actual
que se está configurando actualmente en la lista.Configuración de Verificaciones de Salud para Angie#
/etc/angie/angie.conf
):server {
listen unix:/tmp/angie_hcheck.sock; # Socket Unix para verificación
access_log off;
error_log /dev/null;
default_type text/plain;
return 200 'ok\n';
}
$ sudo angie -t && sudo service angie start
$ sudo angiehasync -Sd
Configuración de Keepalived#
keepalived
no está instalado — instálelo:$ sudo {apk|apt|pkg|yum|zypper} {add|install} keepalived
$ sudo sysctl -w net.ipv4.ip_nonlocal_bind=1
10.21.11.230
se asigna ya sea al nodo maestro (10.21.8.26
)
o al de respaldo (10.21.8.27
).listen 10.21.11.230:80;
)
pero la dirección aún no está asignada,
Angie no podrá iniciarse sin el parámetro ip_nonlocal_bind
.Configuración de Keepalived#
/etc/keepalived/keepalived.conf
):global_defs {
enable_script_security
}
vrrp_script angie_check {
script "/usr/bin/curl -s --connect-timeout 5 -A 'angie_hcheck_script'
--no-buffer -XGET --unix-socket /tmp/angie_hcheck.sock http://hcheck/"
interval 5 user angie
}
vrrp_instance angie {
state MASTER interface enp0s2 virtual_router_id 254 priority 100
advert_int 2 unicast_src_ip 10.21.8.26
unicast_peer {
10.21.8.27
}
virtual_ipaddress {
10.21.11.230
} track_script {
angie_check
}
}
global_defs {
enable_script_security
}
vrrp_script angie_check {
script "/usr/bin/curl -s --connect-timeout 5 -A 'angie_hcheck_script'
--no-buffer -XGET --unix-socket /tmp/angie_hcheck.sock http://hcheck/"
interval 5 user angie
}
vrrp_instance angie {
state MASTER interface enp0s2 virtual_router_id 254 priority 99
advert_int 2 unicast_src_ip 10.21.8.27
unicast_peer {
10.21.8.26
}
virtual_ipaddress {
10.21.11.230
} track_script {
angie_check
}
}
vrrp_instance angie
, establezca los siguientes valores:unicast_src_ip
— IP del nodo actualunicast_peer
— IP de los nodos vecinosvirtual_ipaddress
— IP virtual (VIP)interface
— interfaz de red$ sudo keepalived -t && sudo service keepalived start
Desglose de la Configuración de Keepalived#
global_defs
— configuración globalvrrp_instance
— parámetros VRRP (conmutación VIP)enable_script_security
— permite la ejecución de scripts de verificación de saludvrrp_script
— script de verificación de salud de Angiestate MASTER
— estado inicial del nodopriority
— prioridad (el rol MASTER se asigna al más alto)advert_int
— intervalo de anuncio VRRPunicast_src_ip
— IP del nodo actualunicast_peer
— IP de los vecinosvirtual_ipaddress
— dirección VIPtrack_script
— monitoreo de disponibilidad a través de scripts de verificación de saludnopreempt
:vrrp_instance angie {
... nopreempt
}
Prueba del Funcionamiento del Clúster#
$ ip addr show enp0s2 | grep "10.21.11.230"
$ sudo service angie stop
$ ip addr show enp0s2 | grep "10.21.11.230"
$ sudo service angie start