Deux lignes de shell bash, un ligne d’iptables et une modification d’IP dans un fichier de configuration, c’est a peu près tout ce dont j’ai eu besoin pour automatiser la réplication du contenu de mon serveur de pré-production (Linux Debian à la maison, connecté par une ligne ADSL) à mon serveur de production (Linux Debian, hébergé dans le datacenter d’Easynet).
Cela m’a tout de même demandé trois heures pour en arriver là. Voilà comment faire.
-
Installer rsync sur les deux serveurs:
apt-get install rsync
-
Modifier la configuration de mySQL sur le serveur de production pour qu’il écoute les connexions distantes : éditer
/etc/mysql/my.cnf
et remplacerbind-address = 127.0.0.1
parbind-address = 0.0.0.0
-
Mettre à jour vos rêgles iptables sur votre serveur de production (vous utilisez bien iptables, rassurez moi ? 😉 pour autoriser la connexion sur le port mysql (3306). Un exemple à modifier selon votre configuration iptables :
iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-
Executer sur le serveur de pré-production, un script bash contenant les lignes suivantes :
echo "Synchronizing file system. Please wait..."
rsync -e "ssh -l hleroy" -avz -P /var/www/www.hleroy.com/ hleroy@kylie.easynet.fr:/var/www/www.hleroy.com
echo "Synchronizing database. Please wait..."
mysqldump Mambo --user=mambo --password=mysqlpassword --opt --flush-logs --lock-tables | mysql Mambo -C --host=kylie.easynet.fr --user=mambo --password=mysqlpassword