Publié le 04/27/2018, rédigé par Gaulthier LALLEMAND

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 :

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