Duplication manuelle d'un serveur BlueOnyx : Différence entre versions
De wikiGite
(→Synchronisation des données) |
(→Modification de la configuration, si nécessaire) |
||
(6 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 21 : | Ligne 21 : | ||
= Synchronisation des données = | = Synchronisation des données = | ||
− | Ici, on | + | 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.<br/> |
− | Le répertoire "backup" est un exemple de ce qu'on peut également vouloir exclure au moment du transfert. | + | 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 | rsync -avHz --delete --exclude=/mysql --exclude=/backup root@host1:/home/ /home | ||
Ligne 28 : | Ligne 28 : | ||
Faire un dump des bases à la source | Faire un dump des bases à la source | ||
mysqldump --all-databases -p > all_db.sql | mysqldump --all-databases -p > all_db.sql | ||
− | Transférer le fichier sql, et le recharger à la destination | + | 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 | mysql -p < all_db.sql | ||
= Modification de la configuration, si nécessaire = | = 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) : | Changer IP du serveur dans la base BlueOnyx (qui a été écrasée lors de la copie de codb) : | ||
− | echo SET | + | echo SET 2 ipaddr = \"192.168.1.10\" | /usr/sausalito/bin/cceclient |
'''Attention''' : perte de connexion probable à ce moment si on est en SSH ! | '''Attention''' : perte de connexion probable à ce moment si on est en SSH ! | ||
Puis changer les IP des vhosts : | Puis changer les IP des vhosts : | ||
− | for site in $(clistvsite | awk '{ print $1 }'); do cmodvsite --ipaddr= | + | 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 | cd /etc/httpd/conf.d/subdomains | ||
− | for i in *; do sed -i 's/ | + | for i in *; do sed -i 's/192.168.1.4/192.168.1.10/g' $i; done |
= Redémarrage des services = | = Redémarrage des services = |
Version actuelle datée du 4 janvier 2012 à 11:41
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 !
Sommaire
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