El otro día hice un experimento de esos que NO hay que hacer en vivo en producción... en vivo en producción, claro, un buen sysadmin es guapo, por eso no soy sysadmin pero hago estas cosas 😁
En una hora instalé un nuevo VPS y en él HestiaCP, el fork de VestaCP porque tenía varios sitios en un viejo Ubuntu 16.04, así como leen, una distro del 2016! era hora de un update a 22.04 LTS así que tenía que migrar todo y no se debía notar.
Aquí explico sencillamente cómo hacerlo (aunque nada es sencillo, je).
Hace unos años les conté cómo tener su propio hosting sin tener que pagar por un servicio como Cpanel que es muy caro (y más orientado para Hostings), VestaCP.
Pero el desarrollo de VestaCP se estancó, tardaron demasiado tiempo en lanzar soporte para Ubuntu 20.04 y de ahí en más empecé a usar su reemplazo, HestiaCP.
Hestia tiene soporte para todo esto y, además, está mucho mejor trabajado en todo sentido, funciona mejor, es más claro, más seguro y más consistente. Así que cada vez que instalo un nuevo VPS lo hago con este otro manager.
La instalación es similar a la de VestaCP así que no hace falta explicar todo de nuevo, son dos clicks (dos enters) y ya está.
El tema es ¿Cómo paso los backups de uno al otro? Aaaaah, pero es fácil
Primer que nada HestiaCP no acepta que le instales sitios en el usuario admin para evitar el riesgo de que te tomen control de la cuenta y, en cambio, los sitios van en usuarios secundarios.
¿Vesta? Por default iba todo a admin así que ahí ya hay un cambio que vamos a necesitar contemplar más adelante.
Primero vamos a buscar los backups en la carpeta /backup del servidor viejo. Allí encontraremos un archivo con el nombre tipo:
admin.2023-03-08_10-30-00.tarSi querés que el backup sea más nuevo simplemente lo borrás y desde el panel de administración solicitás que te genere un backup nuevo (eso hice yo).
Copiarlo de un VPS a otro también es sencillo, siempre desde consola y como root en en el destino ya que la carpeta /backup sólo es para administradores.
scp /backup/admin.2023-03-08_10-30-00.tar root@[IP_SERVIDOR_NUEVO]:/backupEsto dependerá de la velocidad entre servidores (yo lo estaba haciendo entre dos hosts de Digital Ocean así que fue muy rápido) y del tamaño del Backup. Pero sale rápido.
Ahora bien, hay un problemita, como mencioné esto no hay que subirlo como usuario admin, conviene pasarlo a otro.
En el HestiaCP recomiendo crear un nuevo usuario que es el que recibirá todos los sitios. Ojo, esto requerirá luego que cambiemos cosas como la configuración de base de datos, urls absolutas, etc.
Para importar el archivo simplemente se ejecuta:
v-restore-user nuevousuario admin.2023-03-08_10-30-00.tardonde nuevousuario es el usuario nuevo al que van a tirar toda la responsabilidad 😛 si no se hace esto no se podrá acceder a la DB porque el usuario admin no tiene acceso al MySQL en la última versión de Hestia (por seguridad, es intencional).
El proceso empieza y se toma su tiempo, lo que más tarda es la importación de bases de datos grandes que requieran índices o si tienen muchos archivos, antes de hacer un backup recomiendo limpiar la carpeta /home/admin/tmp por si hay mucha basura ahí.
El resultado se ve como en este ejemplo, ténganle paciencia, lo último es el tmp así que esperen tranquilos.
-- WEB -- 2023-03-08 12:09:54 test.example.com 2023-03-08 12:09:54 miweb.com -- DNS -- 2023-03-08 12:09:54 test.example.com -- MAIL -- 2023-03-08 12:09:55 test.example.com -- DB -- 2023-03-08 12:09:55 admin_basesdedatos 2023-03-08 12:09:56 admin_default 2023-03-08 12:09:56 admin_wp -- CRON -- 2023-03-08 12:09:57 8 cron jobs -- USER FILES -- 2023-03-08 12:09:57 .sudo_as_admin_successful 2023-03-08 12:09:57 .bash_logout 2023-03-08 12:09:57 .bashrc 2023-03-08 12:09:57 .profile 2023-03-08 12:09:57 tmpPero no con esto estará todo bien, no señores, las bases de datos llevarán el nombre del nuevo usuario, así que primero que nada: editar todos los archivos de config que apunten a una base de datos.
Cambia el nombre de base y de usuario cambiando el prefijo por el user, pero el password se mantiene.
Luego sugiero, también en las configs, cambiar toda ruta absoluta a /home/admin/ por /home/nuevousuario , un ejemplo de esto son los plugins de caché de Wordpress.
Tercero, y no menos importante: cambiar la configuración de DNS. Esto implica varias cosas, a veces HestiaCP crea zonas de DNS para el IP público pero también para el IP de la red privada (usualmente comienza en 10.xx.xx.xx), hay que cambiarlo desde el panel de administración de Hestia.
Luego hay que ir a la configuración de su servicio de VPS para apuntar los dominios al nuevo servidor, también si usan Cloudflare tendrán que cambiarlo allí.
Cualquier caché bórrenla, para que no haga lío.
Tomé este artículo de Clouding.io y lo extendí con mi experiencia, no siempre el proceso es limpio y siempre te encontrás con algún problema, mi único error fue asignarle todo a admin de entrada, tuve que borrar y empezar de nuevo.
Si quieren un VPS usen mi referal de Digital Ocean, a ver si me pagan alguna vez algo esos wachos 😁 en años me dejaron colgados usd 175 porque sólo te paga si duran algo más de un mes, je.