¿Estás visitando desde Perú?
Ingresá a Linware Perú ⯈
Continuar en Linware Perú ⯈
×
¿Qué estás buscando?
BUSCAR!
BLOG
Alternativas de CentOS: Migración de cargas de trabajo de CentOS a OpenSUSE Leap
Publicada el 15/08/2023

En esta publicación de blog, se mostrara un ejemplo de cómo migrar su servidor web Apache que se ejecuta en CentOS a openSUSE Leap, todo mientras se reduce al mínimo el tiempo de inactividad.

El enfoque abarcará los siguientes pasos:

  • Configuración del nuevo servidor web : configuraremos el nuevo servidor web en openSUSE Leap, configurando un balanceador de carga y una IP virtual.
  • Implementación de pruebas automatizadas : para garantizar una funcionalidad fluida, se establecerán pruebas automatizadas para validar la nueva configuración.
  • Modificación de DNS : cambiaremos la entrada DNS del servidor web existente para dirigir el tráfico hacia la IP del Load Balancer.
  • Copia de seguridad y desmantelamiento : la fase final implica la copia de seguridad y eventual desmantelamiento del antiguo servidor web.
Detalles de configuración
DNS del servidor webservidor web.mydemo.lab
DNS de salto de OpenSUSEmyopensuse.mydemo.lab
Centos DNSmycentos9.mydemo.lab
tipo de contenido webHTML estático
Servidor webapache 2.4
IP virtual192.168.122.123

 

Configuración del servidor web openSUSE Leap

Primero, necesitamos instalar el sistema operativo, para hacerlo podemos seguir las instrucciones detalladas proporcionadas en una de nuestras publicaciones de blog. Por ejemplo, la guía de instalación paso a paso de openSUSE Leap o, si desea instalar varias máquinas, puede consultar los pasos descritos aquí para crear un servidor de instalación .

Una vez instalado el servidor, procederemos a configurar el servidor web Apache, HAproxy para que actúe como balanceador de carga, una IP virtual y copiar los contenidos del servidor web existente al nuevo, en este ejemplo el servidor web contiene un conjunto de HTML estático paginas

 

  • Instalar los paquetes:
    zypper install apache2 haproxy

     

  • Configurar apache
    • Cree la configuración SSL:
      cat >/etc/apache2/vhosts.d/myserver-ssl.conf  < n n n        DocumentRoot "/srv/www/htdocs" n        ServerName mywebserver.mydemo.lab:8443 n        ServerAdmin webmaster@mydemo.lab n        ErrorLog /var/log/apache2/error_log n        TransferLog /var/log/apache2/access_log n        SSLEngine on n        SSLUseStapling  on n        SSLCertificateFile /etc/apache2/ssl.crt/localhost-server.crt n        SSLCertificateKeyFile /etc/apache2/ssl.key/localhost-server.key n        CustomLog /var/log/apache2/ssl_request_log   ssl_combined n n n nEOF

       

  • Configurar puertos no estándar
    sed 's/Listen 443/Listen 8443/;s/Listen 80/Listen 8080/' -i /etc/apache2/listen.conf

     

  • Habilitar SSL
    sed 's/APACHE_SERVER_FLAGS="/APACHE_SERVER_FLAGS="SSL /' -i /etc/sysconfig/apache2

     

  • Copie los certificados SSL
    scp mycentos9:/etc/pki/tls/certs/localhost.crt /etc/apache2/ssl.crt/localhost-server.crtnscp mycentos9:/etc/pki/tls/private/localhost.key /etc/apache2/ssl.key/localhost-server.key

     

  • Habilitar e iniciar apache
    systemctl enable --now apache2

     

  • Configurar la IP virtual
    nmcli con mod "Wired connection 1" +ip4 '192.168.122.123/24'nnmcli con reload

     

  • Configurar proxy HA
    • Configurar proxy HA
      cat >>/etc/haproxy/haproxy.cfg <

       

    • Habilitar e iniciar haproxy
      systemctl enable --now haproxy

       

  • Configurar el cortafuegos
    for i in 80 443 8080 8443 9000; do firewall-cmd --add-port=${i}/tcp --permanent; done; firewall-cmd --reload

     

  • Copia el sitio web
    rsync -avz mycentos9:/var/www/html/ /srv/www/htdocs/

     

 

Crear algunas pruebas automatizadas

Se quiere asegurar de que todo funcione como se espera, por lo que crearemos un pequeño script que comparará los resultados de los servidores nuevos y antiguos.

diff -q -b <(curl -k https://myopensuse.mydemo.lab:8443/ 2>/dev/null) <(curl -k https://mycentos9:443/ 2>/dev/null) >/dev/null || echo "Output differs"

 

Cuando se ejecuta, este one-liner permanece en silencio si los servidores web generan resultados idénticos. Si surgen diferencias, se mostrará el mensaje "La salida difiere".

Ahora se va a ejecutarlo pero cambiando el puerto “myopensuse” por el 443 que es el que usa el balanceador de carga. Esto nos permitirá probar el balanceador de carga. Para evaluar la funcionalidad del equilibrador de carga, configurado en turnos, podemos ejecutar el comando varias veces. Este script demuestra la ejecución de la prueba 60 veces, con un intervalo de 2 segundos entre cada solicitud. La secuencia de prueba completa dura aproximadamente 2 minutos:

for e in (seq 1 60) ; do diff -q -b <(curl -k https://myopensuse.mydemo.lab:443/ 2>/dev/null) <(curl -k https://mycentos9:443/ 2>/dev/null) >/dev/null || echo "Output differs" ; sleep 2 ;done

 

Es importante tener en cuenta que estos comandos sirven como ejemplos. Si bien comparan una sola página estática entre servidores, los escenarios del mundo real a menudo involucran varias páginas, incluido el contenido generado dinámicamente.

 

Cambiar el DNS

En este ejemplo, vamos a cambiar el DNS de webserver.mydemo.lab para que apunte a la nueva IP virtual que acabamos de crear, ya que el nuevo servidor está configurado con un balanceador de carga y hemos probado en el paso anterior que el resultado es el mismo no debería haber ninguna interrupción del servicio notable.

Esta es solo una forma de lograr el cambio, puede que no sea adecuada para todos los casos.

Podemos ver en la imagen de arriba que el cliente comenzará a conectarse al balanceador de carga en openSUSE Leap en lugar de al servidor web CentOS directamente, esto se debe a que el DNS ahora apunta a la IP asignada al balanceador de carga.

 

Copia de seguridad y desmantelamiento

Habiendo establecido con éxito nuestro nuevo host para atender las solicitudes del sitio web, el siguiente paso consiste en realizar una copia de seguridad y desmantelar el servidor anterior. Si el servidor anterior funciona como una máquina virtual, se recomienda crear una copia de la imagen de la máquina virtual después de apagarlo.

Tenga en cuenta que el cambio de DNS puede demorar en propagarse y que ciertos clientes podrían estar almacenando en caché la dirección IP anterior. Para garantizar una transición sin problemas, se recomienda esperar aproximadamente un día antes de retirar el servidor anterior. Si el nombre del servidor está codificado en el archivo de hosts locales del cliente, se recomienda eliminarlo a menos que exista una razón específica para tenerlo allí.

Para eliminar el antiguo Centos de la lista de equilibradores de carga, es necesario editar el archivo de configuración de HAproxy y eliminar la línea resaltada:

vim /etc/haproxy/haproxy.cfg
...nbackend webserver n  mode tcp n  balance roundrobin n  server mycentos9 mycentos9.mydemo.lab:443 check n  server myopensuse myopensuse.mydemo.lab:8443 check

 

Después de esto, se requiere una recarga de configuración:

systemctl reload haproxy

  

Esto marca la conclusión del proceso. Con el balanceador de carga en su lugar, se pueden agregar más nodos para distribuir la carga de manera eficiente. Para aquellos que buscan lograr alta disponibilidad, es esencial incorporar un balanceador de carga adicional. Puede encontrar más información sobre HA en este enlace de documentación .

Conclusión

Hemos visto un ejemplo de cómo podríamos migrar nuestros servidores web de CentOS a openSUSE Leap con un tiempo de inactividad mínimo. Este proceso implica instalar un Load Balancer y utilizar una IP virtual, lo que sienta las bases para una configuración de alta disponibilidad capaz de escalar mediante la adición de nuevos servidores al grupo de Load Balancer.

Como alternativa de CentOS , openSUSE brinda numerosos beneficios, incluida la estabilidad, el apoyo de SUSE a la comunidad , potentes herramientas de administración del sistema, funciones de distribución avanzadas y acceso a un rico repositorio de paquetes. La comunidad activa de openSUSE y las sencillas herramientas de migración mejoran aún más el proceso de transición. Si está buscando una distribución de Linux robusta y confiable para sus cargas de trabajo, debería considerar openSUSE.

¿Busca más información sobre lo que puede lograr al migrar a openSUSE ? Consulte otros blogs de esta serie:

Ir al Blog