[Debian 10] Sauvegarder et restaurer son serveur WAPT
Le serveur WAPT ne peut se sauvegarder automatiquement par défaut, il faut paramétrer un script pour pouvoir le faire. Découverte.
Partie SAUVEGARDE
Pour le moment, aucune manipulation officielle est créée pour faire cette sauvegarde complète du serveur. Toutefois, WAPT étant relativement « simple » quant à l’installation de l’application, il vous permet de faire une sauvegarde rapidement qui peut être automatisée. Pour se faire, il faut au préalable arrêter tous les services dont WAPT est dépendant.
sudo systemctl stop nginx && sudo systemctl stop postgresql && sudo systemctl stop waptserver
Les dossiers suivants de WAPT sont à sauvegarder impérativement, ce sont eux les plus importants (avec la base de données) :
- /var/www/wapt/
- /var/www/wapt-host/
- /var/www/waptwua/
- /var/www/ssl
- /opt/wapt/conf/
- /opt/wapt/waptserver/ssl/
L’idée, c’est de regrouper ces dossiers dans une seule et même archive, pour pouvoir la restaurer au besoin sur un nouveau serveur WAPT.
Il faut aussi sauvegarder la base PostgreSQL via l’outil « pg_dumpall« , utilisable en étant l’utilisateur « postgres » :
su postgres
cd ~
pg_dumpall > sauvegarde_wapt.sql
Enfin, une fois la sauvegarde effectuée, il faut redémarrer les services nécessaires pour WAPT :
sudo systemctl start nginx && systemctl start postgresql && sudo systemctl start waptserver
VARIABLES/CONSTANTES
DATE=date +%d_%m_%y
ARRET DE TOUS LES SERVICES NECESSAIRES DE WAPT
sudo systemctl stop nginx && sudo systemctl stop postgresql && sudo systemctl stop waptserver
CREATION ARCHIVE VIDE
tar cvf /tmp/save-waptsrv_$DATE.tar --files-from /dev/null
DUMP SQL
su postgres
cd ~
pg_dumpall > /tmp/save-db-wapt.sql
AJOUT DES DOSSIERS/FICHIERS NECESSAIRES A LA SAUVEGARDE DU SERVEUR WAPT
tar rf /tmp/save-waptsrv_$DATE.
tar /var/www/wapttar rf /tmp/save-waptsrv_$DATE.
tar /var/www/wapt-hosttar rf /tmp/save-waptsrv_$DATE.
tar /var/www/wapt-hostreftar rf /tmp/save-waptsrv_$DATE.
tar /opt/wapt/conftar rf /tmp/save-waptsrv_$DATE.
tar /opt/wapt/waptserver/ssltar rf /tmp/save-waptsrv_$DATE.
tar /tmp/save-db-wapt.sql
COMPRESSION DE L’ARCHIVE
gzip /tmp/save-waptsrv_$DATE.tar
REDEMERRAGE DES SERVICES
sudo systemctl start nginx && sudo systemctl start postgresql && sudo systemctl start waptserver
Afin d’automatiser le script, utilisez crontab (crontab -e) et ajoutez la ligne suivante en fin de fichier – avec cette commande, le script se lancera tous les jours à 02h du matin :
0 2 * * 1 /root/save-wapt-srv.sh
Partie RESTAURATION
Si votre serveur WAPT venait à tomber en panne et que vos sauvegardes ont été faites, vous pouvez restaurer aisément votre serveur.
Commencez tout d’abord par réinstaller intégralement « from scratch » un serveur WAPT, sans données et avec une configuration « basique ». Arrêtez ensuite tous les services dépendents à WAPT :
sudo systemctl stop nginx && sudo systemctl stop postgresql && sudo systemctl stop waptserver
Il faut restaurer les répertoires précédemments cités plus hauts, pour rappel les voici :
- /var/www/wapt/
- /var/www/wapt-host/
- /var/www/waptwua/
- /opt/wapt/conf/
- /opt/wapt/waptserver/ssl/
Si vous avez utilisé le script et la méthode de sauvegarde décrite dans cette article, voici les commandes à passer pour lancer une restauration :
gunzip /tmp/save-wapt-srv.tar.gz tar xvf /tmp/save-wapt-srv.tar
cp -R /tmp/var/www/wapt /var/www/.
cp -R /tmp/var/www/wapt-host /var/www/.
cp -R /tmp/var/www/wapt-hostref /var/www/.
cp -R /tmp/opt/wapt/conf /opt/wapt/.
cp -R /tmp/opt/wapt/waptserver/ssl /opt/wapt/waptserver/.
Les droits doivent être modifiés sur ces dossiers nouvellement copiés :
chown -R wapt:www-data /var/www/wapt/
chown -R wapt:www-data /var/www/wapt-host/
chown -R wapt:www-data /var/www/wapt-group/
chown -R wapt /opt/wapt/conf/
chown -R wapt /opt/wapt/waptserver/ssl/
Des scripts de tests sont présents dans /opt/wapt/ – à utiliser impérativement sans quoi votre serveur ne pourra pas fonctionner correctement !
/usr/bin/python /opt/wapt/wapt-scanpackages.py /var/www/wapt/
/usr/bin/python /opt/wapt/wapt-scanpackages.py /var/www/wapt-host/
/usr/bin/python /opt/wapt/wapt-scanpackages.py /var/www/wapt-hostref/
Enfin, tous les services peuvent être relancés – vous devriez pouvoir vous connecter via la console WAPT.
sudo systemctl start nginx && sudo systemctl start postgresql && sudo systemctl start waptserver