Hola de nuevo,
En este post expondre como montar un squid en modo HA activo-pasivo, la idea es bastante simple aunque por el nombre parezca complicado.
Basicamente haremos:
Como topologia tendriamos algo asi:
Estara todo desplegado con servidores Debian 10.
Paquetes instalados para este ejemplo en caso de no hacerlo con ansible son:
Nota aclaratoria: Esta demostracion no es para poner los proxys balanceados donde aceptarian los requests a la misma vez ok?… eso lleva otra configuracion,… primero veremos esta q es la mas facil para poner 1 solo y en el caso de que no este activo el servicio pase hacia el otro.. lo importante aqui es ver 2 cosas; el despliege de ansible para crear esta configuracion de manera rapida y que para los usuarios este servicio es transparente mientras el sysadmin en el caso de que no funciona 1 squid no tenga la gente arriba de uno hasta que se restablezca y pueda trabajar en paz. En los proximos post pondre la otra configuracion que si seria activo-activo.
Entonces… aclarado esto primero les muestro mi infrastructura de laboratorio… visto que aun no logro poner proxmox usare hyperv para tener las vm listas.
Como ven las 4 maquinas virtuales encendidas 1 donde gestiono los playbooks para el despliegue ansible-manager…las otras ansideb 1 y 2 seran los squids y ansideb3 sera el que mostrara la pagina web y los logs, la ansideb4 no esta encendida pero esta lista para ser usada para los proximos tutoriales.
Demostracion al fin como ven tambien con simplemente 512mb me es suficiente, para su uso en produccion por supuesto le darian a la vm lo que necesiten para que el servicio no sea lento.
Entonces de acuerdo con esto, lo que tendriamos es en nuestro inventario, una cosa asi para luego probar si tenemos comunicacion con nuestros servers entre ansible-manager y ellos.
En el sitio pondre los ficheros de ansible para que puedan usarlo con la debida preparacion del entorno.
Podemos decir aqui algunas notas como por ejemplo:
1- Yo uso directamente en este caso ansible_host como variable para fijar el ip y asi poder llamar las vms por su nombre debido a que no tengo dns en este caso.
2- Se pudiera dejar solo el nombre y pasar los datos de las ip hacia /etc/hosts en el sistema linux del propio ansible-manager para hacerlo con el DNS local.
3- Otra opcion seria usar un DNS ya existente en la red y poner los records para q usando el dns en ansible-manager en /etc/resolv.conf apunte a este dns y cuando lo llamen por sus nombres el encuentre sus ips.
Osea, que lo que esta escrito no es obligado que sea asi, sino que es una opcion para cuando no quieras o no tengas un DNS pues puedes tambien forzarlo diciendole el ip que debe apuntar para conectarse con la variable de ansible_host=ip.de.la.vm
Ya teniendo una comunicacion y respuesta satisfactoria lo que queda es empezar a crear los tasks que irian en el playbook para desplegar los servicios de squid, rsyslog, rsync y el server web.
El flujo de ansible seria el siguiente
Ejemplos para probar:
Keepalived haciendo check cuando los squid estan corriendo
Cuando alguno se reinicia o esten reinciando el server por alguna actualizacion del tipo kernel o algo asi simplemente quita del check el que este en ese estado.
En el caso que los 2 no esten activos entonces el automaticamente cambia la informacion para el server que anunciara a los usuarios el mensaje personalizado
Aqui claro ya uds tendran la imaginacion de poner algo mas pacotilla, esto es para que vean la respuesta… ya luego le meten el logo de la empresa o css y esas cosas.
y en ese caso veran keepalived redirigiendo el trafico al 3er server ansideb3 para ver el mensaje
Aqui mismo vemos las trazas de ambos squid que llega en /var/log/syslog y de ahi bueno ya usarian la herramienta que quieran para verlo mas en detalle que no entra en este articulo.
Configuracion: ansible-lab-squid-ha.tar
Lo ideal seria haber hecho cada servicio con su propio rol… pero los puse juntos para el que empieza a ver ansible desde cero vea como son las cosas, ya que luego iremos separandolo para hacerlo mas modular y aprovechar mejor el codigo en otras soluciones.
Veamos esto en accion con un video: ansible-squid-ha
Me complace anunciar la creación de esta útil herramienta (SquidStats), para el análisis y monitoreo…
La inteligencia artificial está revolucionando las industrias al automatizar tareas, predecir patrones y permitiendo tomar…
Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…
Percona Monitoring and Management (PMM) es una herramienta de código abierto para la supervisión y…
Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…
Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…
View Comments
Con HAProxy se puede hacer eso mismo incluso con interfaz web para monitorizar el comportamiento del "cluster"!
Claro!... lo que en este caso use keepalived.
Basta usar el template y preparar el role con haproxy con su configuracion y tendras lo mismo.
Muy buen tutorial, pudieras hacer una version activo-activo para balancear enlaces