DAViCal
Sauvegarder et restaurer un serveur DAViCal.
Sommaire : Monter son propre service de calendrier
Etape précédente : Créer un raccourci vers un calendrier dans DAViCal
Dans le cadre d'un PCA/PRA, la sauvegarde et la restauration du serveur DAViCal sont indispensables.
Sauvegarde
1) PostgreSQL
Pour retrouver le nom de la base de données du serveur DAViCal, je me connecte à PostgreSQL :
sudo -u postgres psql
# Je liste les bases disponibles :
\list
Dans la colonne Owner, je repère la ligne qui indique davical_dba :
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------------+----------+-------------+-------------+-----------------------
davical | davical_dba | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
Je vois que ma base s'appelle davical.
Puis je quitte le shell de PostgreSQL :
\q
Ensuite je sauvegarde l'état de ma base de données davical (en adaptant ce qu'il faut) :
sudo -u postgres pg_dump --format=c davical > /home/user01/psql_dump_davical/davical.dump
2) Apache
Je dois sauvegarder le fichier de configuration suivant :
/etc/apache2/sites-available/davical.conf
3) Certificat SSL
Si j'ai activé le SSL dans le fichier de configuration de DAViCal sous Apache, je dois également sauvegarder mes certificats.
Si j'ai utilisé Let's Encrypt pour les générer, cela n'a pas vraiment d'importance car je peux en générer de nouveaux gratuitement sur le nouveau serveur.
4) DAViCal
Je dois sauvegarder le fichier de configuration suivant :
/etc/davical/config.php
Restauration
Je pars du principe qu'il s'agit d'un nouveau serveur fraîchement installé.
1) Transfert des fichiers
Pour transférer les fichiers de l'ancien serveur vers le nouveau, je peux utiliser l'outil rsync.
Je m'assure qu'il est installé sur les deux serveurs :
sudo apt install rsync
Puis je l'utilise ainsi pour récupérer un fichier sur le nouveau serveur :
# J'adapte le numéro de port, l'utilisateur, le nom de domaine (ou IP), et le chemin du fichier :
rsync -avz -e "ssh -p12345" user01@ancien_serveur:/home/user01/mon_fichier .
2) Prérequis et installation
Je modifie l'enregistrement A dans le DNS afin qu'il pointe vers l'adresse IP du nouveau serveur.
Je dois également procéder à l'installation des paquets requis pour faire fonctionner le service DAViCal. J'en profite pour mettre à jour le serveur.
3) PostgreSQL
J'effectue les paramétrages nécessaires indiqués dans cet article :
- modification du fichier pg_hba.conf;
- création de la base avec le script create-database.sh.
Ensuite, comme je souhaite utiliser ma sauvegarde, je vais d'abord supprimer la base davical vide. Pour cela, je me connecte à PostgreSQL :
sudo -u postgres psql
Et je supprime la base davical :
DROP DATABASE davical;
Je vérifie que la base est supprimée (la ligne ayant pour Nom davical ne doit plus apparaître) :
\list
# Et pour quitter :
\q
Note : le script de création de base create-database.sh crée aussi (entre autres) les utilisateurs davical_dba et davical_app. Ceux-ci ne sont pas supprimés (c'est le but).
Puis je recrée le schéma :
sudo -u postgres createdb --owner davical_dba --encoding UTF8 --template template0 davical
Pour vérifier que la base a bien été créée, je regarde si la ligne de la base davical ayant pour Owner (propriétaire) davical_dba existe :
sudo -u postgres psql
\list
\q
Finalement, je restaure mon ancienne base de données grâce au fichier davical.dump :
sudo -u postgres pg_restore --format=c --dbname=davical /home/user01/davical.dump
Pour vérifier que l'opération a réussi :
# Cette commande devrait afficher l'ensemble des noms d'utilisateurs de l'ancien serveur DAViCal
sudo -u postgres psql davical -c "SELECT username FROM usr"
4) Certificats SSL
Il est nécessaire de rapatrier les anciens certificats ou d'en créer de nouveaux.
5) Apache
Je remplace le fichier de configuration du site de DAViCal par mon ancien fichier :
rm /etc/apache2/sites-available/davical.conf
mv ~/ancien_davical.conf /etc/apache2/sites-available/davical.conf
Si j'utilise le SSL, j'active le module :
sudo a2enmod ssl
Puis j'active la configuration de l'hôte virtuel :
sudo a2ensite davical
Je n'oublie pas de désactiver la configuration par défaut :
sudo a2dissite 000-default
Enfin, je redémarre le service Apache :
sudo systemctl restart apache2
Je peux vérifier le bon fonctionnement du serveur Apache en allant à l'URL suivante avec mon navigateur :
http://davical.mondomaine.fr
Selon la configuration de l'hôte virtuel, ma page s'affichera ou sera redirigée vers la version https.
DAViCal
Avant de me connecter sur l'interface web du serveur, il me reste encore à remplacer le fichier de configuration actuel par mon ancien :
rm /etc/davical/config.php
mv ~/ancien_config.php /etc/davical/config.php
Maintenant je peux me connecter sur l'interface, et annoncer que le service est de nouveau accessible !
Etape suivante : Importer/exporter des calendriers depuis/vers un serveur DAViCal