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:
DNS del servidor web | servidor web.mydemo.lab |
DNS de salto de OpenSUSE | myopensuse.mydemo.lab |
Centos DNS | mycentos9.mydemo.lab |
tipo de contenido web | HTML estático |
Servidor web | apache 2.4 |
IP virtual | 192.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
zypper install apache2 haproxy
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
sed 's/Listen 443/Listen 8443/;s/Listen 80/Listen 8080/' -i /etc/apache2/listen.conf
sed 's/APACHE_SERVER_FLAGS="/APACHE_SERVER_FLAGS="SSL /' -i /etc/sysconfig/apache2
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
systemctl enable --now apache2
nmcli con mod "Wired connection 1" +ip4 '192.168.122.123/24'nnmcli con reload
cat >>/etc/haproxy/haproxy.cfg <
systemctl enable --now haproxy
for i in 80 443 8080 8443 9000; do firewall-cmd --add-port=${i}/tcp --permanent; done; firewall-cmd --reload
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: