2. Outils myhelp et App Manager pour la maintenance Présentation du contenu et du fonctionnement des assistants myhelp et App Manager dans le cadre d'une installation ou d'une mise à jour des applicatifs Open-Prod et myfab. Scripts myhelp myhelp est un utilitaire permettant de faciliter la prise en main du terminal de commande Linux. Plusieurs commandes, regroupées par catégories, ont été créées par 1Life afin de paramétrer et maintenir l'environnement technique d'Open-Prod. Présentation Afin d'en faciliter la maintenance des services d'Open-Prod, Jasper Reports et des modules myfab, 1Life a packagé des commandes exécutables depuis un terminal Linux depuis le serveur Open-Prod. Ces commandes sont résumées sous la commande globale myhelp .  Sur la gauche, vous trouverez la commande à inscrire dans le terminal, et sur la droite l’action qu'elle réalisera. Par exemple, si je veux connaître le statut de l'instance Open-Prod, je saisis openprod-status dans le terminal. Le terminal affichera les informations voulues directement dans la console. Fonctionnement des commandes myhelp Les différentes commandes disponibles dans myhelp seront détaillées ici. Section Open-Prod Manipulation du service Open-Prod Les commandes ci-dessous permettent simplement de démarrer ou arrêter le service Open-Prod. La commande openprod-status permet d'interroger l’état du service et indique à l’utilisateur s'il est fonctionnel. Ici, la machine nous indique que le service :  est en mode running (en cours d’exécution),  est « enabled », il sera démarré automatiquement lors du démarrage du système, qu’il a été démarré il y a 18h00, que la machine est configurée avec deux workers http et deux workers cron, utilise une certaine quantité de mémoire, travaille sur le fichier de configuration « /etc/openprod-home/openprod-server.conf ». Le fichier de configuration "openprod-server.conf" Présent dans la « home » de l’utilisateur l’ayant installé, l’ERP s’appuie sur ce fichier, lors du démarrage du service pour déterminer le contexte dans lequel il va être utilisé : Quels sont les modules Open-Prod déployés et ou les localiser ? Comment accéder aux bases de données et comment s’authentifier au SGBD ? Les limites systèmes qui vont être mises en œuvre dans le cadre de son utilisation : Le port d’écoute http sur lequel il répondra dans le navigateur : Le nombre de workers : Etc.. Ce fichier est crucial, et toute modification de ce fichier doit être précédée d’une copie préalable.   Bien conscient que la manipulation d’un éditeur de texte (vi, nano, etc..), n’était pas des plus aisée pour la configuration, myfab a décidé de mettre à disposition plusieurs commande pour permettre à l’administrateur de modifier le fichier "openprod-server.conf" même s’il ne maitrise pas un éditeur de texte. Attention, toute modification du fichier "openprod-server.conf" nécessite un redémarrage des services Open-Prod pour prendre en compte les modifications effectuées. Manipulation du fichier "openprod-server.conf" La commande openprod-config permet la modification de certaines clés du fichier de configuration sans entrer en mode édition. Le programme propose la modification de la valeur de ces clés et demande à l’utilisateur de saisir la valeur qu’il souhaite mettre à jour. Une sauvegarde du fichier est faite automatiquement pour le préserver avant sa modification : Attention ! Cette préservation n’a pas pour but que de permettre à l’utilisateur de conserver temporairement les modifications qu’il vient de réaliser (et éventuellement de les annuler). Les différentes sauvegardes des ces modifications seront supprimées lors du prochain redémarrage du serveur. L’utilisateur peut néanmoins, au travers de la command « diff », déterminer quelles modifications ont été faites depuis le dernier démarrage : La commande master-password-config a une double fonction : elle modifie le "master password" nécessaire à l’administration des bases de données dans l’ERP, elle modifie également le mot de passe PostgreSQL de l’utilisateur qu’utilise l’ERP avec lequel l’ERP s’authentifie. Attention, ces deux commandes redémarrent automatiquement le service Open-Prod. Quand le client désire crypter les flux entre le serveur Open-Prod et le client, il est nécessaire de passer la connexion en https. La commande https-config permet donc de : Déployer le reverse proxy nginx sur le serveur Open-Prod, Créer un certificat autosigné sur le serveur, Configurer nginx avec ce certificat pour un accès à Open-Prod. Le serveur Open-Prod sera alors accessible sur le port 8068 en http mais aussi sur le 443 en https. Commande openprod-info La commande permet d'afficher l’ensemble des informations de versions des Gits Open-Prod & Myfab. Ceci a pour objectif de vérifier d’un seul coup d’œil l’état de mise à jour d’un serveur afin de pouvoir reproduire un serveur isopérimètre ou pour revenir en arrière suite à une montée de version en échec par exemple. La commande openprod-info affiche dorénavant le détail de mise à jour des Gits présents sur le serveur et leur commit respectif. Commande openprod-config-o365 Cette commande positionne les valeurs des clés « server_wide_modules » et « cors_domains » du fichier de configuration en vue du raccordement d’Open-Prod à OFFICE 365. Il convient de toujours lancer les commandes openprod-config-jasper et postgres-config lorsque la base de données est disponible et le moins sollicité possible : le redémarrage des services peut entrainer l’interruption de traitements longs (cron, etc..). Cela permet de réduire le risque d'impact du bon fonctionnement de l'ERP. Tachez toujours dans la mesure du possible, de réduire au maximum le nombre d’utilisateurs pouvant avoir accès à PostgreSQL depuis le réseau. De plus, une bonne connaissance du contexte réseau (VPN, adresse IP publique/locale, etc..) est nécessaire pour faire ce type de manipulation. Section Jasper Manipulation du service Jasper Les commandes jasper-start et jasper-stop permettent simplement de gérer le démarrage et l'arrêt du service Jasper. La commande  jasper-status  permet d'interroger l’état du service et indique à l’utilisateur s'il est fonctionnel. Commande jasper-studio-install Elle permet de déployer le programme Jasper Studio sur un environnement Ubuntu doté d’un interface graphique. L’utilisateur pourra donc créer et paramétrer ses rapports directement depuis le serveur en question. Commande jasper-mono-config Elle permet de configurer le serveur Open-Prod pour qu’il accueille le programme Jasper. De plus, elle modifie le service Jasper afin de limiter les ressources qu’il peut prendre au détriment du service Open-Prod. Elle est exécutée automatiquement lors de l’installation d’Open-Prod par l’installation de Jasper si ce dernier détecte la présence d’Open-Prod sur le serveur. Section SQL Commande pgadmin4-install Elle permet le déploiement du programme pgadmin4 sur le serveur Open-Prod. pgadmin4 sera accessible via le client graphique si le serveur est doté d’un GUI, ou en Web via apache. Attention, le déploiement de https-config invalide le port 80 du serveur Apache et empêche donc l’utilisation du mode web de pgadmin. Commande postgres-restart Cette commande redémarre les services SGBD à la suite d’une modification de paramétrage. Elle provoque un arrêt (relativement court) des accès au SGBD et donc peut impacter le service Open-Prod : elle doit être lancée quand l’activité est minimum sur le serveur. Elle peut être utile à lancer quand le fichier pg_hba.conf ou le postgresql.conf ont été modifiés (ouverture de port ou augmentation du nombre de connexions simultanées sur PostgreSQL). Attention, elle peut provoquer une brève interruption de service ! Commande postgres-config La commande permet de d'ouvrir l'accès à PostgreSQL à un sous-réseau déterminé, saisi sous la forme 192.168.10.0 : Par exemple, cela peut donner le résultat suivant : Tachez toujours dans la mesure du possible, de réduire au maximum le nombre d’utilisateurs pouvant avoir accès à PostgreSQL depuis le réseau. De plus, une bonne connaissance du contexte réseau (VPN, adresse IP publique/locale, etc..) est nécessaire pour faire ce type de manipulation. Section myfab Commande myfab-sql-uninstall Le contexte contenu dans le fichier openprod-server.conf embarque la liste des répertoires que l’ERP va scruter pour mettre à disposition des modules. La commande permet notamment de nettoyer la base avant de la transmettre. Naturellement, ce nettoyage ne doit pas être fait sur le serveur de production mais sur un serveur/poste dédié à cet usage. Lors de son exécution, la commande vous demandera sur quelle base vous désirez faire disparaitre toute trace des modules « myfab ». Commande myfab-specif-config La commande permet d'activer un ou plusieurs modules spécifiques myfab. Le fichier "openprod-server.conf" est alors modifié avec ces nouvelles entrées.     Section Imprimantes Commande cups-install La commande déploie le paquet Ubuntu cups (Common Unix Printing System) sur le serveur local. L’administration se fera via le web sur le port 631 du serveur sur lequel il est déployé. cups permet d'administrer les imprimantes présentes sur le réseau. Il est préférable de déployer cups sur le serveur Open-Prod directement, et ce même si on a un environnement dédié pour Jasper Server. Commande pdf-printer-install Déploie une imprimante virtuelle PDF (pour tests). Section divers Commande xrdp-config Cette commande n’a plus qu’un intérêt limité dans la mesure où le GUI n’est plus installé par défaut. Toutefois, elle peut-être amenée à être utilisée sur des VM sur un poste utilisateur. Elle passe d’un accès TSE à Hyper-V (et vice versa) autorisant la copie de fichier au travers de l’interface graphique, par exemple. Commande myhelp-linux Cette commande donne des informations sur les principales commandes système que les clients ou les consultants peuvent être amenés à utiliser sur les différents environnements. Cette commande est en cours de refonte, son fonctionnement va évoluer prochainement. Commande font-barcode-install Cette commande était initialement destinée à être exécutée sur les premiers environnements clients installés pour mettre à disposition les différentes polices code-barres sur le serveur. L’installation des différentes polices est dorénavant réalisée lors de toute installation d’Open-Prod par myfab. Commande hostname-config Cette commande est utilisée pour mettre à jour le nom NETBIOS d’une machine Ubuntu (nom réseau par lequel la machine sera résolue par les autre membres du réseau). Cette commande est à utiliser avec précaution dans la mesure où : Le serveur a pu être raccordé à un domaine, D’autres membres du réseau peuvent « pointer » sur des ressources du serveur Ubuntu. La commande nécessite un redémarrage de la machine pour la prise en compte du nouveau nom. Commande très utile pour les consultants lorsqu’ils importent une VM (1Life) pour qu’il n’y ait pas deux machines sur le réseau qui portent le même nom. Cette commande nécessite un haut niveau de privilège . Si la machine est intégrée dans un domaine, un compte d’administration de ce domaine sera requis… Commande ip-show Elle permet à l’utilisateur de voir l’adresse IP actuelle de son environnement Open-Prod et le ou les services (ports) sur lesquels son environnement est joignable. Commande shared-folder-config Elle installe et configure les paquets samba nécessaires pour partager des dossiers sur un réseau (au besoin) et permet à l’utilisateur de créer un lecteur partagé sur le serveur, dans son espace Home qui sera accessible par les autres membres du réseau. Ceci est très utile quand on a des fichiers à mettre à disposition du serveur via le réseau, ou si l’on veut copier des fichiers depuis le sous-réseau présent sur le serveur Ubuntu. Une fois exécutée, le lecteur partagé est directement accessible depuis le réseau : Commande ged-remote-config A l’inverse de la commande shared-folder-config , la commande ged-remote-config va déployer les paquets « cifs-utils » (au besoin) et permettre au serveur Ubuntu de connecter un lecteur réseau (sur un nas, un serveur de ficher, etc..) afin d’y stocker la GED d’Open-Prod quand cette dernière est trop volumineuse. L’administrateur devra fournir des identifiants permettant au serveur Ubuntu de s’authentifier sur le partage mis à disposition. L’utilisateur devra renseigner :  Le nom de partage distant complet avec « / » et non « \ », Les code utilisateurs d’authentifications sur le lecteur réseau distant, Les éventuelles options de montage souhaitées : ces dernières sont à adapter en fonction de la ressource distante. Si le montage échoue (droits, options, résolution, etc..), le programme s’arrêtera, sinon, il rentrera en mode « sql-update » afin de restructurer la ou les bases de données. Commande git-config Cette commande permet d'administrer les différents git présents sur le serveur. Il peut arriver de rencontrer ce message lors de l’exécution d’une commande MyFab : Ceci indique que les identifiants git stockés sur le système sont erronés ou obsolètes. Sélectionner alors en premier lieu le git que vous désirez mettre à jour puis sélectionner « changer d’utilisateur », confirmer, puis ressaisir des identifiants valides. Cette commande peut être utilisée aussi pour modifier le commit d’Open-Prod, par exemple : Toute modification du commit Open-Prod ou myfab doit être suivi d'une restructuration des bases de données à l'aide de la commande sql-update .. Commande git1life-crt-config  Sur certain serveur, l’accès au git 1life ne pouvait pas être établi sans le déploiement de ce certificat Résumé des commandes myhelp 1. Liste des commandes Comme décrit plus tôt, la commande myhelp regroupe et liste l'ensemble des commandes. Elles sont toute exécutables indépendamment en fonction de l'objectif du script. Parmi ces commandes on retrouve les catégories Gestion des applications, Open-Prod, Jasper, SQL, myfab, Imprimantes et Divers . Gestion des applications app-manager Outil de maintenance des applicatifs et de l'environnement myfab et Open-Prod Open-Prod openprod-start Démarre le service Open-Prod openprod-restart Redémarre le service Open-Prod openprod-stop Arrête le service Open-Prod openprod-status Donne le statut du service Open-Prod https-config Configure le https pour Open-Prod (certificat autosigné) openprod-config-jasper Configure Open-Prod pour accès Jasper openprod-config Configure Open-Prod (Worker, ...) openprod-config-o365 Configure Open-Prod pour accès O365 openprod-info Informations sur Open-Prod (Version, ...) Jasper jasper-start Démarre le service Jasper jasper-stop Arrête le service Jasper jasper-status Donne le statut du service Jasper jasper-studio-install Installe Jasper Studio jasper-mono-config Configure Jasper pour exécution en mono-serveur SQL pgadmin4-install Installe PgAdmin4 (équivalent SQL studio pour PostgreSQL) postgres-config Ouvre PostgreSQL vers l'extérieur (pour accès distant, depuis SQL Management Studio par exemple) sql-update Met à jour une base de données sql-backup Crée une sauvegarde d'une ou plusieurs base(s) de données sql-auto-backup Met en place une sauvegarde régulière de base(s) de données postgres-restart Redémarre le service PostgreSQL myfab myfab-sql-uninstall Désinstalle tous les modules myfab d'une BDD myfab-specif-config Active ou non les sources myfab Spécifique (modules) Imprimantes cups-install Installe le gestionnaire d'imprimantes Cups pdf-printer-install Installe une imprimante virtuelle PDF (pour tests) Divers xrdp-config  Configuration de l'accès à distance (TSE ou Hyper-V) myhelp-linux Affiche une aide sur Linux font-barcode-install Installe les polices Codebar39, Codebar128 et fre3of9x hostname-config Permet de modifier le nom "netbios" de l'environnement. ip-show Montre l'adresse IP de la machine et les URLs accessibles shared-folder-config Crée et/ou configure un dossier partagé au réseau ged-remote-config Configure l'accès d'Open-Prod à la GED distante master-password-config Modifie le mot de passe Master d'Open-Prod (gestion des bases de données) git-config Configurer/Modifier un git (Utilisateur, Branche, Commit, ...) git1life-crt-config Authentifie localement le certificat du serveur Git 1Life 2. Principe de fonctionnement Chaque script a son propre fonctionnement et son propre flux. Ainsi, l'utilisateur est invité à répondre aux différentes questions posées par le script. Il sera principalement demandé de répondre par "o" ou "y" pour "Oui" ou à l'inverse par "n" pour "Non". Lorsque l'on a besoin de lister des éléments, une liste de chiffres sera demandé pour identifier les éléments concernés par la commande. Par exemple, il est parfois demandé de lister les bases de données à mettre à jour. Globalement, il suffit de suivre le script et les questions posées par celui-ci. Tant qu'aucun message de fin ou d'erreur n'est affiché par le terminal, il convient de le laisser poursuivre son traitement. A noter toutefois qu'il est possible de stopper le traitement à tout moment avec la combinaison de touche "CTRL + C". App Manager L'App Manager est un utilitaire permettant de gérer la maintenance des différents applicatifs myfab installés ou à installer sur le serveur. Présentation de l'App Manager 1. Préambule L'App Manager permet de gérer l'installation et la mise à jour des applications myfab et Open-Prod. Initialement, toute cette gestion se faisait au travers de commandes spécifiques décrites par myhelp . De son côté, l'utilitaire myhelp rassemble et met en forme des lignes de commandes utiles pour la maintenance de l'environnement Open-Prod sur le serveur. Désormais, les commandes liées à l'installation ou la mise à jour d'Open-Prod, des modules myfab ou de Jasper sont packagées dans l'App Manager afin d'optimiser leur enchainement et ainsi réduire le temps nécessaire pour leur exécution.  Par exemple, pour une mise à jour d'Open-Prod et des modules myfab, c'est l'App Manager qui se charge de réaliser la mise à jour de la base de données ( sql-update ) une fois toutes les mises à jour terminées. Cela permet d'optimiser le temps nécessaire tout en fiabilisant le processus. En effet, au lieu de réaliser un remise à niveau de la structure de la base de données (via la commande sql-update ) à la fin de la mise à jour d'Open-Prod et une seconde à la fin de celle des modules myfab, une seule structuration est réalisée à la fin de toutes les mises à jour. 2. Accès à l'App Manager L'App Manager est accessible depuis un terminal depuis le serveur hébergeant Open-Prod. Si vous ne savez pas vous connecter à votre serveur, vous pouvez suivre les instructions décrites ici . Dans le cas où vous souhaitez effectuer une mise à jour sur un autre environnement serveur que celui d'Open-Prod, il faut exécuter l'App Manager depuis cet environnement. Par exemple, dans le cas où vous avez un environnement dédié au fonctionnement de Jasper et que vous souhaitez mettre à jour les rapports myfab, il faut réaliser cette mise à jour directement sur ce serveur. Une fois connecté, ouvrir un terminal, et exécuter la commande app-manager pour lancer l'App Manager. Utilisation 1. Principe de fonctionnement L'utilisation est guidée au travers des commentaires affichés tout au long de l'exécution du script. Différents menus permettent de sélectionner les modules à installer / mettre à jour. Une fois la sélection faite, le mot de passe Open-Prod sera demandé. Le script se charge ensuite de lancer toutes les commandes nécessaires et affiche le déroulé du processus au fur et à mesure dans les terminaux. Vous pouvez suivre l'exécution de ceux-ci à l'écran. En effet, pour chaque application à installer / mettre à jour, l'App Manager ouvrira un terminal pour en gérer indépendamment l'exécution. En cas de succès de l'exécution, le terminal concerné sera fermé automatiquement et un message de confirmation sera affiché dans le terminal initial.  En cas d'erreur , le terminal concerné restera ouvert pour que l'utilisateur en connaisse la raison. En résumé, il faut lancer l'utilitaire en exécutant la commande app-manager depuis un terminal, et suivre les questions posées dans le terminal. 2. Choix proposés Au lancement de l'App Manager, plusieurs choix sont proposés à l'utilisateur. Pour chaque applicatif, il est indiqué entre parenthèses s'il est installé ou non. Voici une description de ce ceux-ci : Scripts myhelp : remplace la commande command-update. Attention, cette option n'est disponible qu'après avoir réalisé la mise à jour permettant d'accéder aux fonctionnalités de l'App Manager. Open-Prod : récupère les dernières sources d' Open-Prod sur le Git de l'éditeur Objectif Pi, puis, met à jour l'application Open-Prod. Modules myfab : récupère les dernières sources de myfab sur le Git de l'éditeur myfab, puis, met à jour les modules myfab standards. Modules spécifiques myfab : récupère les dernières sources de myfab specific sur le Git de l'éditeur myfab, puis, met à jour les modules myfab spécifiques. Jasper : lance le processus d'installation complet de Jasper. Rapports Jasper d'Objectif Pi : déploie le catalogue des rapports Jasper standards d' Open-Prod . Rapports Jasper myfab : déploie le catalogue des rapports Jasper standards de myfab. 3. Synchronisation d'une base de données Après l'installation ou la mise à jour d' Open-Prod ou des modules myfab, une restructuration de la base de données est nécessaire. L'App Manager se charge automatiquement de réaliser cette mise à niveau de la base de données en fin de processus. Il est primordial pendant cette étape de ne pas interrompre le script tant que celui-ci n'a pas rendu la main à l'utilisateur. Attention, suite à la restauration d'une base de données ou lors de la création d'une nouvelle base de données sur cet environnement, il est uniquement nécessaire de synchroniser la nouvelle base de données avec son environnement, sans toutefois avoir besoin de mettre à jour les sources d'Open-Prod ou des modules myfab. Pour lancer manuellement et uniquement cette restructuration des bases de données, il faut exécuter la commande sql-update depuis un terminal. Une restructuration de base de données n'est pas sans risque pour l'intégrité des bases. C'est pourquoi il est nécessaire d'effectuer des sauvegardes avant traitement. De plus, il faut veiller à ce que le traitement se soit bien déroulé avant de considérer celui-ci terminé et réussi. Comme un sql-update peut prendre plusieurs minutes et être lancé sur plusieurs bases de données en même temps, il est fastidieux pour un utilisateur de scruter les messages durant l'intégralité de son traitement, ou même de parcourir les logs après traitement. La commande a donc été améliorée afin de palier à ce souci. Fonctionnalités disponibles depuis la mise à jour de Juillet 2023 des scripts myfab. Dorénavant, une fois le traitement terminé, un récapitulatif des différentes erreurs rencontrées s’affichera base par base (dans le cas où plusieurs bases ont été sélectionnées). Un fichier de log sera produit et conservé dans le répertoire « /var/log/openprod ». Le nommage du fichier suit la forme suivante : « UP--.log ». Le fichier vous permettra une post analyse plus aisée. De plus, le récapitulatif listera les principales erreurs et vous permettra de prendre la décision adéquate en fonction du résultat. Pour rappel, les messages " CRITICAL "  sont ceux à surveiller particulièrement : ces derniers ont la capacité d’interrompre un sql-update et sont généralement révélateurs d’un problème réel. La deuxième priorité concerne les messages " ERRORS " : bien qu'ils n'interrompent pas un sql-update, ils peuvent néanmoins dissimuler d'autres problèmes potentiels. Lorsque vous n'obtenez pas de message " CRITICAL ", vous pouvez considérer que la mise à niveau est effectuée avec succès : les autres messages que vous pouvez rencontrer ne bloquent pas la poursuite des activités du client. Cependant, il reste fortement recommandé d'examiner attentivement les messages de type " ERRORS ".