Llega la hora de sincronizar datos para usar varios servidores con Wordpress
Llega ya la parte más… ¿divertida? Vamos a emplear para ello conexiones SSH y RSYNC, que nos servirá para sincronizar nuestros tres servidores y dejarlos clavaditos.
Nos faltará ya sólo la base de datos. Ánimo.
Permisos en los Servidores
Sé que soy pesado, pero los servidores tienen que ser idénticos (vale, si sois ordenados y os da la vena podéis hacerlo con distintos usuarios, pero no entiendo la razón).
Tenéis que asegurtaros de darles permisos bash a los usuarios para que entren y puedan ejecutar comandos.
Establecer una clave para SSH
Nuestra idea es sincronizar Servidor 1 con Servidor 2 y tres, para lo que vamos a crear una conexión SSH en cada uno de los servidores.
Creamos la clave en Servidor 1:
ssh-keygen -t rsa -b 4096 -C "clave" -f ~/.ssh/clave -q -N ""
Copiamos la clave a Servidor 2 y 3:
ssh-copy-id -i ~/.ssh/clave usuario2@ip.servidor.2
Obviedades: donde pone usuario2 poned vuestro usuario (que tenga acceso por SSH y FTP, no vale root) y donde por ip.servidor.2 hay que poner la IP del segundo servidor.
Os va a preguntar la clave y como tenemos una memoria de elefante y la recordamos, se la ponemos.
Así ya tendremos acceso mediante esta clave al servidor 2 y 3 por ssh.
Para probar que furrula el invento, probamos:
ssh -i ~/.clave usuario2@ip.servidor.2
y nos deja entrar (si no, algo malo, malito, malo ha pasado: no soy adivino).
Copiar Datos
Y por último, ¡hacemos la magia!
rsync -arz --no-o --no-g --progress --delete --rsh="ssh -i /home/usario1/.ssh/clave" /var/www/loquetedelagana1 usuario2@ip.servidor.2:"/var/www/loquetedelagana2"
Donde pone var/www/loquetedelagana1 evidentemente (que todo hay que decirlo) hay que poner la ruta absoluta a los archivos del Servidor 1 y donde pone var/www/loquetedelagana2 poner los del Servidor 2 que, como hemos sido buenos chicos y nos hemos lavado los dientes, serán idénticos (o no, jejeje).
Un poco de explicación:
–delete es para borrar todos los archivos que existan en Servidor 2 y no estén en el 1 (cache incluida por el mismo precio).
–progress para ver el progreso.
Esto es lo básico. Ahora os tenéis que crear un ejecutable con un script que te haga eso mismo, pero sin –-progress
Idéntico con Servidor 3
Manera aún más fácil (aún) de establecer una conexión ssh sin contraseña
Hay otra manera (menos segura, suponemos) que es copiar la clave “a saco” y decirle al servidor (2 o 3) que nos acepte siempre porque somos gente de fiar, Uno de los Nuestros.
Entras en Servidor 1 como tu usuario y pones:
ssh-keygen -t rsa -b 4096
Y luego lo copias a Servidor 2
ssh-copy-id usuario@IP_servidor2
conectas:
ssh usuario@ip.servidor2
Le dices que sí, que te acepte y listo.
Evidentemente, habrá que modificar los scripts y demás, que serán un poco distintos. Si tenéis dudas, me lo comentáis y lo detallo un poco más, pero es bastante sencillo.
Los Scripts
A gusto del consumidor. Yo me los creo en /usr/bin con vim (ya sé que el resto del mundo lo hace con nano, pero a mí es que me gusta, como el Jack Daniel’s).
vim /usr/bin/sincroniza.sh
Ahí pegamos el código que hayamos obtenido y que nos funciona para automatizar el proceso. Depende del caso, claro.
Le metemos permisos 755 para poder ejecutarlo:
chmod 755 /usr/bin/sincroniza
¡¡¡¡Funciona!!!!!
Pues nada, con esto tenemos los dos servidores. Ahora nos queda la parte última, pero también la más difícil: las bases de datos.
Lo dejamos para mañana, que tanta sabiduría para un día tan soleado igual os causa problemas.
Capítulo Anterior: Preparando Servidores. WordPress con Varios Servidores. Guía (II)