Sauvegarde unitaire des composants du ou des environnement(s)

Si aucune sauvegarde complète du ou des environnement ERP n’est prévue, il revient alors au client et à son prestataire de mettre en place une stratégie de sauvegarde unitaire des données métier essentielles à la reprise d’activité de l’ERP. Ce document décrit l’organisation de ce type de sauvegarde . Il précise le rôle et les responsabilités respectives de :  l’éditeur (Open Prod), l’intégrateur (1Life), le client (DSI / exploitation),

Afin de garantir :
•    L’extractibilité et la réversibilité des données,
•    La sécurité et la pérennité des informations métier,
•    La capacité de restauration en cas d’incident ou de sinistre.

Il présente ensuite les outils métier mis à disposition par Open-Prod et 1Life pour réaliser ces sauvegardes.

Organisation de la sauvegarde des données métier

1. Périmètre des données concernées
Les sauvegardes doivent couvrir l’ensemble des données critiques de l’environnement. Soit  :

2. Responsabilités de l’éditeur (Open Prod)
L’éditeur Open Prod est responsable de la conception logicielle de la solution et de la mise à disposition des mécanismes d’extraction des données.

À ce titre, l’éditeur :

L’éditeur n’est pas responsable : de l’exécution des sauvegardes, du stockage des données, de la politique de rétention ni des tests de restauration.

3. Responsabilités de l’intégrateur
L’intégrateur intervient comme tiers expert entre l’éditeur et le client. Il est responsable de la présentation, de l’appropriation et de la documentation des outils fournis par l’éditeur.

À ce titre, l’intégrateur doit :

Documenter leur utilisation : 

Mettre à disposition, le cas échéant, des scripts ou procédures complémentaires facilitant l’exploitation des outils de l'éditeur. S’assurer que les méthodes proposées permettent une restauration fonctionnelle sur un environnement équivalent.

L’intégrateur ne réalise pas les sauvegardes opérationnelles, sauf prestation explicitement contractualisée.

4. Responsabilités du client (DSI / Exploitation)
Le client, via sa DSI ou son équipe d’exploitation, est pleinement responsable de la stratégie de sauvegarde et de son exécution au travers des éléments communiqués dans ce document.

5. Mise en œuvre
Le client doit :
•    Récupérer régulièrement les données extraites à l’aide des outils fournis par l’éditeur et documentés par l’intégrateur.
•    Mettre en œuvre les outils de sauvegarde (solutions de backup, automatisation, supervision).

Schéma de principe :

image.png

5.1 Définition de la politique de sauvegarde

La DSI définit et formalise :

5.2 Contrôle et exploitation

Le client est responsable de :

Les informations suivantes présentent l'ensemble des outils mis à disposition pour extracter les données métier.

Sauvegarde ponctuelle au travers d'un navigateur ou sur le serveur

Sauvegarde manuelle :

Permet de sauvegarder ponctuellement de manière manuelle la GED Système et Client et / ou la base de données Open-Prod. Cette sauvegarde se réalise soit depuis le navigateur du poste client, à distance du serveur, sinon directement depuis le serveur Open-Prod via les scripts myhelp.

Ce type de sauvegarde est recommandée en cas de besoin de mise en place d'une base de test, de transfert rapide de base d'un environnement à un autre, de sauvegarde ponctuelle d'appoint avant un test de paramétrage par exemple. Cette méthode ne peut pas être plannifiée dans le temps.

NOTA : il est important de vérifier l'espace disque disponible sur le serveur Open-Prod avant de lancer le traitement car le fichier de sauvegarde est tout dabord créé localement sur le serveur Open-Prod avant d'étre éventuellement uploadé sur le poste client. Naturellement, lors de ces sauvegardes, l'idéal reste que les utilisateurs ne soient pas connectés afin de garantir une intégrité des données maximum.

Depuis le navigateur

Pour la base de données Open-Prod et la GED

  1. Se connecter sur le Portail Open-Prod.
  2. Cliquer sur "Gestion des bases de données" depuis l'écran de connexion.

image.png

3. Localiser la base de données que vous désirez sauvegarder, puis cliquer sur « Backup »


image.png

4. Saisir le mot de passe administrateur puis le type de sauvegarde souhaitée :


image.png

5. Enfin, cliquer sur "Backup" pour lancer la production de la sauvegarde sur le serveur. Celle-ci sera automatiquement téléchargée sur le poste client.

L'option "zip (includes filestore)" produira une sauvegarde contenant l’ensemble de la GED incluse dans l’ERP tandis que l'option "pg_dump custom format (without filestore)" réalisera un simple dump de la base données. C'est à dire une sauvegarde SANS la GED d'Open-Prod.

Note importante : seules les sauvegardes type "zip (includes filestore)" permettent de restaurer l'entièreté de la GED. Cela implique que la restauration des sauvegardes type "dump" ne permettent pas de profiter de l'ensemble des fonctionnalités après restauration. Attention, ce type de sauvegarde peut nécessiter un espace disque important.

Pour les base(s) de données Jasper (version Open-Prod V9 uniquement) 

  1. Se connecter sur le portail Jasper Serveur. Le service est disponible à l'adresse ou est installé le serveur Jasper Report (sur l'environnement Open-Prod dans la majoritée des cas) : http://[IP-Server]:8080/jasperserver/login.html
  2. Renseigner l'ID de l'utilisateur et le mot de passe (en général jasperadmin / jasperadmin)
  3. Aller dans Gérer > Paramètres du serveur > Exporter

    image.png

  4. Indiquer un nom d'export (export.zip par exemple) puis cocher l'option "Exporter tout") puis valider par le bouton "Exporter" en bas de fenêtre. Le fichier sera automatiquement téléchargé sur le poste client.image.png
  5. Mettre de coté le fichier sauvegardé

Depuis le serveur Open-Prod

Consulter la page Sauvegarde Ponctuelle depuis le serveur

Sauvegarde récurente via commandes myhelp

Les outils présentés ci-dessous permettent de sauvegarder automatiquement de manière ponctuelle ou plannifiée (avec récurence) la GED Système et Client et / ou la base de données Open-Prod et Jasper. Cette sauvegarde se réalise sur le serveur ERP Open-Prod qui conserve le ou les fichier(s) de sauvegarde à l'emplacement indiqué par la tache de sauvegarde.

Il est possible avant de lancer les sauvegardes de créer un dossier dédié à l'accueil de ces sauvegardes sur l'environnement Open-Prod. Il est également possible de le partager pour récupérer ensuite ces fichiers au travers du réseau local. Consulter la page de la commande shared-folder-config pour celà.

il est important de vérifier l'espace disque disponible sur le serveur Open-Prod avant de lancer un traitement car le fichier de sauvegarde est tout dabord créé localement sur le serveur Open-Prod avant d'étre éventuellement downloadé sur le poste client. Naturellement, lors de ces sauvegardes, l'idéal reste que les utilisateurs ne soient pas connectés afin de garantir une intégrité des données maximum.

Utilisation de l'outil :

Au travers des outils myhelp, myFAB propose des fonctions permettant de réaliser des sauvegardes ponctuelles ou automatisées des bases de données d'Open-Prod.

Les sauvegardes effectuées au travers des scripts myhelp produisent des sauvegardes de type : 

Note importante : seules les sauvegardes type "zip", (avec sauvegarde des bases de données + GED) permettent de restaurer l'entièreté des données de l'ERP. Attention, ce type de sauvegarde peut nécessiter un espace disque important (la GED peut occuper beaucoup d'espace). Cela implique que les sauvegardes de type "dump" (sans sauvegarde de la GED) ne permettent pas de profiter de l'ensemble des fonctionnalités de l'ERP après restauration.

1. Réalisation d'une sauvegarde ponctuelle via scripts myhelp

Sur l’utilisateur ubuntu d'administration des scripts myhelp, les commandes sql-backup et sql-auto-backup sont accessibles directement en mode commande au travers des scripts myhelp

Depuis votre terminal, taper sql-backup

Tapez 0 pour sauvegarder votre ou vos bases Open-Prod, 1 pour votre base jasper.

Sélectionnez la base que vous désirez sauvegarder, puis indiquer le répertoire ou le dump sera placé.

2. Mise en place d'une sauvegarde automatique

Depuis votre terminal, tapez sql-auto-backup suivi de « Entrée » :

image.png

Renseigner les informations suivantes :

Note importante : l’espace utile nécessaire à la réalisation d’une telle programmation est à étudier en amont, en fonction de la volumétrie des bases, du nombre de bases, et du nombre de jours de rétention souhaité : il peut être souhaitable de réaliser cette sauvegarde sur un autre volume, externe au serveur de gestion de base de données.

Une fois la programmation réalisée, l’utilisateur peut revenir sur celle-ci afin de l’ajuster (modification de l’heure de lancement, jour de la semaine, etc..) en tapant la commande suivante : 

sudo -u root crontab -e

La machine affichera alors la programmation du « cron » système de l’utilisateur root.

Note importante : la modification d’un paramétrage de sauvegarde automatique doit être réalisée par un utilisateur expert dans la notion de cron linux et ayant une bonne maitrise d’un éditeur de texte tel que vim ou nano. Naturellement, si la programmation de cette sauvegarde est modifiée d’une quelconque manière, il convient de vérifier, au cours des jours suivant la modification que les sauvegardes réalisées sont bien fonctionnelles et en adéquation avec les attentes initiales.

3. Mise en sécurité des sauvegardes

Une fois les tâches de sauvegarde effectuées, il est important de mettre ces sauvegardes en sécurité sur un espace de stockage dédié. Il est ensuite possible d’utiliser toute méthode ou outil tiers de sauvegarde installé sur le réseau local afin de récupérer les sauvegardes présentes dans ce répertoire partagé et de les répliquer vers des sites distants ou vers des supports de sauvegarde indépendants (disques externes, supports à bande, etc.).

image.png

Sauvegarde récurente via commandes Externes

Attention ! Les batch (ou lignes de commande) sont fournis à titre d’exemple : ils sont à adapter et à tester en fonction du contexte réseau et du résultat attendu. Ils doivent être mis en place par un utilisateur maitrisant PostgreSQL et les flux réseau associés. En fonction des protocoles de sécurité mis en place, les identifiants et mot de passes peuvent circuler en « clair » sur le réseau !

1.               Réalisation d’une sauvegarde distante via pg_dump (au travers des fonctions de sauvegarde Postgresql)

Descriptif de la commande : pg_dump est une commande Postgresql permettant de réaliser une sauvegarde d’une base de données PostgreSQL locale ou distante.

Documentation en ligne : https://docs.postgresql.fr/15/app-pgdump.html

Tant sous Windows que sous linux, il est possible de réaliser une sauvegarde distante via la commande pg_dump :

pg_dump --no-owner --format=c -h <IP_SERVER> -p <PORT> -d <BDD> -U <USER_POSTGRESQL>

Exemple d’utilisation de la commande pg_dump sous windows.

image.png

Naturellement, sous Windows, il conviendra de télécharger un PostgreSQL et de n’installer, par exemple, que les outils en ligne de commande :

image.png


Sur un serveur linux, les paquets nécessaires à la cette opération seront à installer sur le serveur distant :

image.png

Pensez toujours à télécharger une version des commandes PostgreSQL (Linux ou Windows) compatible et au plus proche de la version présente sur l’environnement Open-Prod !

Pour Windows, rendez-vous sur l’url : https://www.postgresql.org/download/windows/

Note : les commande pg_restore, createdb et dropdb sont aussi disponibles sur les différents OS. Naturellement l’utilisation de ces commandes spécifiques nécessite une bonne connaissance de PostgreSQL.

Toutes les commandes précitées nécessitent une authentification sur le serveur PostgreSQL distant. Rendez-vous sur l’url : https://www.postgresql.org/docs/12/libpq-pgpass.html afin d’automatiser la connexion à partir du poste client.

2.               Réalisation d’une sauvegarde via curl (au travers des fonction de sauvegarde Open-Prod)

Descriptif de la commande : curl est une commande présente sur de nombreux système Windows et Linux. Cette commande permet d’exécuter des scripts ou des connexion web en ligne de commande. Elle permet, entre autres, de transférer des fichiers. Cette fonction Curl expose les méthodes de sauvegarde Open-Prod (pour la base de données et la GED).

Cette commande peut être lancée directement sur le serveur Open-Prod ou depuis un environnement client du réseau local (poste Windows, poste Linux, serveur NAS, système de sauvegarde, etc.).

Pour plus d’information, rendez-vous sur : https://curl.se/docs/tooldocs.html

Exemple de script Windows :

Syntaxe de la fonction utilisée :

curl -X POST -F master_pwd=<MASTER_PASSWORD> -F name=<DATABASE> -F backup_format=<BACKUP_FORMAT> -o <NOM_DE_FICHIER> http://<ADRESSE_IP>:8068/web/database/backup

Mise en script .bat de la fonction pour Windows :

@ECHO OFF
SET ADMIN_PASSWORD_DEST=M0t2PassE
SET SERVEUR_DEST=192.168.40.17
SET DATABASE_DEST=REFERENCE_MYFAB
SET BACKUP_FORMAT=zip
SET FILE_DEST=REFERENCE_MYFAB_BCK_WIN_CURL.zip
curl -X POST -F master_pwd=%ADMIN_PASSWORD_DEST% -F name=%DATABASE_DEST% -F backup_format=%BACKUP_FORMAT% -o %FILE_DEST% http://%SERVEUR_DEST%:8068/web/database/backup

Note : la variable ADMIN_PASSWORD_DEST est ici le mot de passe Admin de manipulation de bases de données sous Open-Prod. Naturellement l’url de sauvegarde doit embarquer le protocole (ici http) et le port (8068). Le type de sauvegarde (dump ou zip) est à adapter en fonction de la volumétrie et du stockage de la GED d’Open-Prod.

Utilisation du script .bat

image.png

La mise en place d’un paramétrage de sauvegarde à distance doit être réalisée par un utilisateur connaissant bien la notion des flux réseau. Naturellement, un test de la validité du fichier .zip (donc la sauvegarde) est à réaliser en aval de ladite sauvegarde de manière périodique, par tentative de restauration sur le serveur, par exemple.

Autre exemple détaillé d'une sauvegarde / restauration via curl :

1 - Sauvegarde backup zip sur serveur Open-Prod ou depuis un poste distant Windows

Décomposition des options

curl -X POST -F master_pwd=openprod -F name=BaseOPP1 -F backup_format=zip -o SauvOPP_001.zip https://10.10.20.30:8068/web/database/backup

le fichier SauvOPP_001.zip sera créé dans le répertoire courant (celui où est exécuté la commande curl). Si la commande est lancée sous Linux depuis /home/erp/ le fichier sera sous : /home/erp/SauvOPP_001.zip. Si la commande est lancée sous Windows depuis C:\Windows\System32 e fichier sera sous : C:\Windows\System32\SauvOPP_001.zip

Exemple d'utilisation de la fonction sous Windows / cmd (préparation du fichier puis transfert du fichier sur le disque en local sous Windows) :

image.png

2. Copie du fichier de sauvegarde

2.1 Depuis le serveur Open-Prod vers un autre environnement Linux (NAS, serveur de sauvegarde Linux, etc.) si la sauvegarde a été lancée sur le serveur Open-Prod. Sous terminal Linux, lancer :

scp /home/erp/SauvOPP_001.zip erp@10.10.20.40:/home/erp/

2.2. Depuis un poste Windows connecté au réseau si la sauvegarde a été lancée sur le serveur Open-Prod. Sous Windows cmd, lancer :

scp erp@10.10.20.30:/home/erp/SauvOPP_001.zip C:\

3. Restauration :

5. Intégrer le token de session et lancer la restauration du backup par Curl :
curl -X POST -F master_pwd=openprod -F name=SauvOPP_001 -F backup_file=@/home/erp/SauvOPP_001.zip -F "copy=true" -F csrf_token=6b7c2d9daac14ff4c5615e9429cd93bd32f002b7 http://10.10.20.40:8068/web/database/manager