Duplication manuelle d'un serveur BlueOnyx

De wikiGite

Note 1 : cmuImport ne SAIT PAS recréer les vhosts et les utilisateurs avec les mêmes IDs. Donc si les chemins vers les sites (DocumentRoot) sont codés en dur dans les pages PHP, on peut être amené à réaliser une duplication manuelle pour conserver les IDs des vhosts et des utilisateurs.

NOTE 2 pour Rsync : lancé en root avec "-a" il garde les permissions et les propriétaires, mais pas s'il est lancé avec un autre utilisateur !

synchronisation de la base CODB BlueOnyx

Actions à réaliser SUR LE SERVEUR DE DESTINATION

rsync -avHz --delete root@host1:/usr/sausalito/ /usr/sausalito

Synchronisation du reste de la configuration

rsync -avHz --delete root@host1:/etc/httpd/ /etc/httpd
rsync -avHz --delete root@host1:/etc/mail/ /etc/mail
rsync -avHz root@host1:/etc/passwd /etc
rsync -avHz root@host1:/etc/group /etc
rsync -avHz root@host1:/etc/shadow /etc
rsync -avHz root@host1:/etc/my.cnf /etc
rsync -avHz root@host1:/etc/php.ini /etc
rsync -avHz root@host1:/etc/php.d/ /etc/php.d
# Recréer la base BlueOnyx pour que les quotas se mettent à jour ensuite en chargeant /home
/etc/init.d/cced.init restart # recrée la config., entre autres /etc/hosts, 
/etc/init.d/admserv restart

Synchronisation des données

Ici, on exclut mysql car les bases ne seraient pas cohérentes si elles sont ouvertes pendant la copie (à la source comme à la destination). On préférera donc les recréer par export/import.
Le répertoire "backup" est un exemple de ce qu'on peut également vouloir exclure au moment du transfert. Noter que les exclusions se font en chemins relatifs par rapport à ce qui est synchronisé. Ici on exclut donc /home/mysql et /home/backup.

rsync -avHz --delete --exclude=/mysql --exclude=/backup root@host1:/home/ /home

Synchronisation MySQL

Faire un dump des bases à la source

mysqldump --all-databases -p > all_db.sql

Transférer le fichier sql, et le recharger à la destination (avec "all-databases", le fichier contient les recréations de bases si nécessaire, et les drop/create tables au cas ou celles-ci existent déjà dans la base de destination) :

mysql -p < all_db.sql

Modification de la configuration, si nécessaire

Changer IP du serveur dans la base BlueOnyx (qui a été écrasée lors de la copie de codb) :

echo SET 2 ipaddr = \"192.168.1.10\" | /usr/sausalito/bin/cceclient

Attention : perte de connexion probable à ce moment si on est en SSH !

Puis changer les IP des vhosts :

for site in $(clistvsite | awk '{ print $1 }'); do cmodvsite --ipaddr=192.168.1.10 --fqdn=$site; done

Si les virtualhosts contiennent des sous-domaines, on doit modifier manuellement, la BlueOnyx ne le fait pas :

cd /etc/httpd/conf.d/subdomains
for i in *; do sed -i 's/192.168.1.4/192.168.1.10/g' $i; done

Redémarrage des services

/etc/init.d/admserv restart
/etc/init.d/httpd restart
/etc/init.d/mysqld restart
/etc/init.d/sendmail restart
/etc/init.d/dovecot restart