oscarmlage.com

djangonaut, sysadmin and father x2

User Tools

Site Tools


public:migra

Migración s4y01 a da.sys02

Hoja de ruta

v Parar código producción
  v Parar apache + mysql + monit
  v No tenemos página de mantenimiento así que no hacemos nada, dejamos deshabilitado durante migración
v Sincro db viejo -> nuevo
  v Podíamos haber hecho split, sincro primero de bbdd y luego de código
v Cambiar config de base de datos viejo -> nuevo
  v Mamel se encarga de cambiar la config
v Comprobar que la nueva bbdd está actualizada
v Efectuar un pago y comprobar que se graba correctamente
v Subir apache nuevo y viejo
  v Cambiar monit de mysql en el viejo para que no lo suba automáticamente (reiniciar monit)
v Comprobar que el código nuevo funciona (nueva ip en ''/etc/hosts'' y probar)
v Comprobar que SSL funciona en servidor nuevo
- Miramos otros servicios (monit, munin, sphinx, admin, crones...)
  v Sphinx <- ya no se usa, ni se instaló
  v Munin
  v Monit
  v Admin
  v Crones
  v Correos
v Cambiar DNS
  v Cambiar DNS en OVH/Cloudflare
v Deshabilitar script de sincronizado
- Hacer backup automática en el servidor de copias de seguridad

Diario de migración (20160808)

10:45 - Comenzamos migración, down apache/mysql/monit (no tenemos página en mantenimiento así que a pelo bajamos servicios)

(da.sys01) $ /etc/init.d/monit stop
(da.sys01) $ /etc/init.d/apache2 stop
(da.sys01) $ /etc/init.d/mysql stop

11:10 - Sync de todo, bbdd + código

(da.sys02) $ ./rsync_s4y01.sh
# Mejorable, en vez de hacer sync de todo podríamos haber hecho sync sólo de db y una vez
# cambiadas pass y demás hacer sólo del código

11:25 - Configuración de las bases de datos cambiada, código nuevo y viejo apunta a la base de datos nueva. NO levantamos mysql viejo, lo quitamos de monit para que no se levante automáticamente y no haya líos.

(da.sys01) $ /etc/init.d/monit start
(da.sys01) $ /etc/init.d/apache2 start

11:30 - Comprobamos que todo esté funcionando adecuadamente, hacemos pago y comprobamos que se guarde
11:40 - Comprobamos código, IP del nuevo server en /etc/hosts y navegamos en modo incógnito
11:50 - Miramos otros servicios (monit, munin, sphinx, admin, crones…)
12:00 - Probando correos. Para probar correos cambiamos el host del MX en la propia máquina y le damos a recordar contraseña en la web:

(da.sys02) $ dig bidobido.com MX | grep MX
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> bidobido.com MX
;bidobido.com.                  IN      MX
bidobido.com.           222     IN      MX      1 mail.bidobido.com.
(da.sys02) $ nano /etc/hosts
...
94.23.195.221   mail.bidobido.com
...
(da.sys02) $ ping mail.bidobido.com
PING mail.bidobido.com (94.23.195.221) 56(84) bytes of data.
64 bytes from da.sys02 (94.23.195.221): icmp_req=1 ttl=64 time=0.038 ms
64 bytes from da.sys02 (94.23.195.221): icmp_req=2 ttl=64 time=0.030 ms

12:50 - Cambio de DNS's en CloudFlare
13:00 - Probando correos, crones, clientes… todo parece funcionar
13:10 - Programando copias de seguridad en da.backup

Cambio porque sí

public/migra.txt · Last modified: 2016/10/20 19:35 by Oscar M.