Esto es un resumen de los pasos que seguí, adaptando un poco la guía que aparece en la
wiki de ispcp y del "
como" de kurgans.
Mi intención era pasar todo de un servidor a otro, utilizando la misma ip-fail over, con distinto hostname y sin instalar nada más (rsync).
Funcionó, y conservo el panel de control, los dominios, cuentas ftp, cuentas de correo..
Lo dejo aquí por si a alguien le sirve, y al tiempo, al ser chapucero, por si alguien detecta algún error.
* Objetivo: restaurar contenido de servidor1.dominio.com en servidor2.dominio.com
* La ip-fail apunta a servidor1, y solo al finalizar el proceso la modifiqué para que vaya a servidor2.
* servidor2 tiene una instalación limpia de ispcp y demás cambios iguales a servidor1, con la única diferencia de las referencias a los distintos hostname.
Parto de un archivo de backup generado con "dar" y que descomprimo en "/tmp/backup". Esos archivos descomprimidos conservan los permisos y propietarios originales.
# cd /tmp/backup
Paramos ispcp:
# /etc/init.d/ispcp_daemon stop
Extraemos los usuarios vu* de los restaurados /etc/passwd, /etc/group, /etc/shadow y /etc/gshadow:
# cat etc/passwd | grep '^vu.*:' > passwd.vu
# cat etc/group | grep '^vu.*:' > group.vu
# cat etc/shadow | grep '^vu.*:' > shadow.vu
# cat etc/gshadow | grep '^vu.*:' > gshadow.vu
En los cuatro nuevos archivos *.vu eliminamos la primeira linea, correspondiente al usuario vu2000, pues ya está creada en la instalación de ispCP.
Insertamos los usuarios en los respectivos arquivos:
# cat passwd.vu >> /etc/passwd
# cat group.vu >> /etc/group
# cat shadow.vu >> /etc/shadow
# cat gshadow.vu >> /etc/gshadow
Temos unha copia global de las bases de dados en un único archivo (mysqldump_global-2009-05-04.sql, depositada en ./var/COPSEG/mysql). La restauramos.
# mysql -p < var/COPSEG/mysql/mysqldump_global-2009-05-04.sql
(solicita contraseña de root de mysql)
Restauramos arquivos:
# cp -R var/mail/* /var/mail
# cp -R var/www/* /var/www
# cp -R var/log/* /var/log
Observo que /etc/aliases.db es un binario pero que en su interior contiene referencias a "servidor1.dominio.com". No lo toco; imagino que producirá algún error.
# cp -R etc/apache2/* /etc/apache2
# cp -R etc/bind/* /etc/bind
# cp -R etc/courier/* /etc/courier
# cp -R etc/postfix/* /etc/postfix
# cp -R etc/proftpd/* /etc/proftpd
# cp -R etc/postgrey/* /etc/postgrey
# cp -R etc/ispcp/* /etc/ispcp
# mysql -p
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/ispcp_daemon stop
# mysql -p
mysql> USE ispcp;
mysql> UPDATE server_ips SET ip_number = "ip-servidor2", ip_domain = "servidor2.dominio.com", ip_alias = "servidor2.dominio.com" WHERE ip_id = 1;
mysql> UPDATE `domain` SET `domain_status` = 'change' WHERE `domain_status` = 'ok';
mysql> UPDATE `subdomain` SET `subdomain_status` = 'change' WHERE `subdomain_status` = 'ok';
mysql> UPDATE `domain_aliasses` SET `alias_status` = 'change' WHERE `alias_status` = 'ok';
mysql> UPDATE mail_users SET status="toadd" where status="ok";
mysql> quit
(ip-servidor2 sería la ip-failover, igual a la ip de servidor1)
# /var/www/ispcp/engine/ispcp-rqst-mngr
# /etc/init.d/ispcp_daemon start
En este punto cambio la ip-failover de servidor.
Despues de todo esto, no funciona: recivo avisos de problemas con los permisos al intentar abrir los webs. Entontes me doy cuenta de que los arquivos de /var/www/virtual/*, tienen a root como propietario.
Vuelvo a copiar los arquivos /var/www e /var/mail, pero esta vez cun novo parámetro "-p" para que mantengan los permisos originales (también añadí -f para que no pregunte al sobreescribir).
# cp -Rfp var/mail/* /var/mail
# cp -Rfp var/www/* /var/www
# cp -R var/log/* /var/log
Y ya funcionó todo (webs, las cuentas de correo mantienen los mensajes que estaban pendentes, cuentas y accesos ftp..).
Seguro que metí la pata en mas de algun punto importante, pero funcionó (por lo menos aún no descubrí ningún error).