Dans cet article nous allons voir comment réaliser des sauvegardes complètes de FreePBX et aussi comment restaurer ces sauvegardes en cas de besoin.
Il est possible de réaliser des sauvegardes manuelles et des sauvegardes automatisées.
Nous verrons que FreePBX dispose d’un outil très complet et efficace pour la gestion des sauvegardes et des restaurations.
Le fonctionnement de la sauvegarde sous FreePBX
Lors du processus de sauvegarde, FreePBX va générer une archive au format .tar.gz.
Cette archive contient la totalité de la configuration de FreePBX et de tous ses modules (fichiers, bases de données, etc.).
Avant de pouvoir lancer une sauvegarde manuelle ou de configurer une sauvegarde automatique, il est nécessaire de définir un emplacement de sauvegarde. Il s’agit de l’emplacement où sera stockée (ou téléversée) la sauvegarde.
Cet emplacement peut être local (sur le serveur téléphonique en tant que tel) ou distant (sur un serveur de sauvegarde tiers).
FreePBX supporte les emplacements de sauvegarde suivants :
- Local
- Distant par FTP
- Distant par SSH
- Distant par E-mail
- Distant par Amazon S3
- Distant par Dropbox
Dans notre article, nous allons définir deux emplacements de sauvegarde : le premier localement sur le serveur FreePBX et le second distant sur un serveur tiers sur lequel les sauvegardes seront téléversées par SSH.
Il n’est bien sûr pas nécessaire de définir deux emplacements différents pour faire des sauvegardes. Un seul emplacement suffit. Vous choisissez celui qui vous convient. Nous en créerons deux dans cet article pour l’exemple.
Définir un emplacement de sauvegarde
Sauvegarde locale
La sauvegarde locale sera stockée sur le serveur FreePBX en tant que tel. Elle est donc intéressante car elle permet une restauration en cas d’erreur de configuration (le retour-arrière est facile), mais elle ne permet pas de se prémunir en cas de perte du serveur (le disque-dur qui lâche, par exemple).
Aussi, nous conseillons de disposer d’une sauvegarde locale ainsi que d’au moins une sauvegarde distante.
Pour définir un emplacement de sauvegarde local, nous nous rendons dans le menu Paramètres > Filestore :
Nous cliquons sur l’onglet « Local », puis sur le bouton « + Add Local Path » :
Les champs à compléter sont les suivants :
- Path name : le nom que nous souhaitons donner à cet emplacement. Dans notre exemple, nous l’appelons « Sauvegardes boxIP ».
- Description : une description optionnelle.
- Path : l’emplacement de la sauvegarde. Nous choisissons /var/spool/asterisk/backup qui est l’emplacement traditionnel des sauvegardes pour Asterisk. Vous pouvez, bien sûr, choisir n’importe quel autre emplacement.
Exemple de résultat obtenu :
Nous cliquons sur le bouton « Soumettre » pour valider notre configuration.
Notre emplacement local est prêt.
Sauvegarde distante par SSH
La connexion sur un serveur distant via le protocole SSH se fait exclusivement par l’intermédiaire d’une authentification par échange de clés. C’est-à-dire qu’une clé publique sera déposée sur le serveur distant et que freePBX utilisera une clé privée pour se connecter à ce serveur distant.
La première étape consiste donc à générer un couple clé privée / clé publique. Pour cela, nous nous connectons en SSH sur notre serveur FreePBX. Une fois connecté, nous utiliserons la commande ssh-keygen :
sudo -u asterisk ssh-keygen
Nous conservons les options par défaut et n’indiquons pas de « passphrase ». Les clés sont sauvegardées dans le répertoire /home/asterisk/.ssh/id_rsa.pub
Il nous reste à copier notre clé publique sur le serveur de sauvegarde distant en utilisant la commande ssh-copy-id :
sudo -u asterisk ssh-copy-id -i /home/asterisk/.ssh/id_rsa.pub utilisateur_distant@serveur
Il faut remplacer « serveur_distant
» par le nom d’utilisateur choisi pour se connecter sur le serveur de sauvegarde et « serveur
» par l’adresse IP du serveur de sauvegarde.
Nous ne détaillons pas davantage le mode de fonctionnement d’authentification SSH par échange de clé.
Pour approfondir le sujet, nous vous recommandons la lecture de l’article Authentification SSH par clés proposé sur le site IT-Connect.
Nous pouvons retourner sur l’interface web d’administration de FreePBX et nous rendre dans le menu Paramètres > Filestore :
Nous cliquons sur l’onglet « SSH », puis sur le bouton « + Add SSH Server » :
Les champs à compléter sont les suivants :
- Server Name : le nom du serveur de sauvegarde. Ce nom est informatif ; il n’a pas besoin de correspondre à une adresse IP ou un FQDN.
- Description : une description optionnelle.
- Hostname : L’adresse IP ou le FQDN du serveur.
- Port : le port d’écoute du serveur SSH. Il s’agit du port 22, par défaut.
- Username : le nom d’utilisateur pour vous connecter au serveur SSH.
- Key : l’emplacement de la clé privée qui sera utilisée pour se connecter sur le serveur SSH. Dans notre cas : /home/asterisk/.ssh/id_rsa
- Path : l’emplacement où vous souhaitez sauvegarder le fichier sur le serveur SSH. Si la sauvegarde doit être placée à la racine, vous pouvez laisser ce champ vide.
Exemple de résultat obtenu :
Nous cliquons sur le bouton « Soumettre » pour valider notre configuration.
Notre emplacement distant accessible en SSH est prêt.
Réaliser une sauvegarde manuelle ou planifiée
Pour exécuter manuellement une sauvegarde ou pour planifier une sauvegarde, nous nous rendons dans le menu Administrateur > Sauvegarder et restaurer :
Nous cliquons sur le bouton « + Add Backup » pour définir un nouveau type de sauvegarde.
Les champs à compléter sont les suivants :
- Nom de la copie de sauvegarde : un nom qui permettra d’identifier la sauvegarde. Ne pas indiquer d’espace ni de caractères spéciaux.
- Description de la copie de sauvegarde : une description ; il s’agit d’un champ optionnel qui peut rester vide.
- Backup Items : par défaut, tout est sauvegardé ; il est possible de ne sauvegarder que certains éléments en cliquant sur le bouton « Modules » qui fera apparaître la liste des modules à sauvegarder.
- Custom Files : si on a personnalisé Asterisk avec des fichiers supplémentaires, il faut penser à les ajouter ici.
- Notification Email : l’adresse à laquelle sera envoyée une notification dès qu’une sauvegarde sera exécutée. Il est possible de préciser plusieurs adresses e-mail en les séparant par des virgules.
- Inline Logs : si positionné sur « Yes », les logs seront dans le corps de l’e-mail ; si positionné sur « No », les logs seront en pièce-jointe
- Email Type : permet de choisir quand un e-mail est envoyé ; 3 choix sont possibles
- Success : un e-mail est envoyé que si la sauvegarde s’est bien passé ;
- Failure : un e-mail est envoyé que si la sauvegarde n’a pas pu se faire correctement ;
- Both : un e-mail est envoyé systématiquement.
- Storage Location : c’est ici que nous pouvons sélectionner vers quel emplacement sera téléversée la sauvegarde.
- Append Backup Name as a directory to the Storage path : permet de personnaliser le nommage de la sauvegarde
À ce stade, la configuration pour réaliser des sauvegardes manuelles est terminée.
Exemple de résultat obtenu :
Les options suivantes permettent de planifier des sauvegardes automatiques.
Les options disponibles sont les suivantes :
- Enabled : permet d’activer la planification des sauvegardes ; il faut choisir « Yes » pour l’activer.
- Scheduling : permet de choisir la fréquence des sauvegardes et le créneau durant lequel la sauvegarde doit être exécutée. Une sauvegarde hebdomadaire le samedi à 23h59 est un bon choix par défaut.
- Delete After Runs : permet de déterminer combien de sauvegardes doivent être conservées. Si l’on ne souhaite pas imposer de limite, on peut laisser la valeur par défaut : 0.
- Delete After Days : permet de préciser quelle doit être la durée de rétention de chaque sauvegarde. 3 mois, nous paraît être un bon choix.
- Hooks : il est possible d’exécuter des scripts avant ou après une sauvegarde, ainsi qu’avant ou après une restauration. Dans ce cas, il faut indiquer le chemin complet vers le script qui doit être exécuté.
- Warm Spare : cette option permet de sauvegarder la configuration vers un serveur FreePBX secondaire ; ceci est très utile pour les environnements FreePBX configurés en haute-disponibilité.
Exemple de résultat obtenu :
Nous cliquons sur le bouton « Save » afin de sauvegarder notre configuration.
La configuration de la sauvegarde de notre serveur FreePBX est terminée.
Pour lancer une sauvegarde manuelle depuis l’interface web, il suffit de cliquer sur le bouton « Start » .
Restaurer une sauvegarde
Pour restaurer une sauvegarde, il faut se rendre sur l’onglet « Restore ». Trois méthodes de restauration sont disponibles :
- Charger un fichier depuis son ordinateur en cliquant sur le bouton « Click to upload a backup file. »
- Restaurer une sauvegarde depuis le cache local
- Restaurer une sauvegarde depuis un des emplacements de sauvegarde (local et distant)
Pour chaque sauvegarde connue de FreePBX, il est possible de lancer une restauration (), de télécharger la sauvegarde sur son ordinateur () ou de la supprimer ().
Les sauvegardes sont classées par date, par nom et par emplacement de sauvegarde.
Après une restauration, FreePBX devra être redémarré.
Notre documentation est enrichie très régulièrement. N’hésitez pas à nous suivre via notre flux RSS ou sur les réseaux sociaux (Twitter ou LinkedIn).