# 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`**.

[![image-1663072245594.png](https://docs.myfab.fr/uploads/images/gallery/2022-09/scaled-1680-/image-1663072245594.png)](https://docs.myfab.fr/uploads/images/gallery/2022-09/image-1663072245594.png)

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 `<strong>openprod-status</strong>` dans le terminal. Le terminal affichera les informations voulues directement dans la console.

# Installation et mise à jour

#### 1. Déploiement des scripts myfab

Les scripts myhelp ont besoin des sources myfab pour être reconnus. Aussi,**[ il convient de s'assurer que les sources ont été déployées sur le serveur](https://docs.myfab.fr/books/myfab-file-interface-mffi/page/sources-myfab)**.

L'installation et la maintenance se déroulent désormais dans **[l'App Manager](https://docs.myfab.fr/books/2-outils-myhelp-et-app-manager-pour-la-maintenance/chapter/app-manager "App Manager")**.

#### 2. Mode d'utilisation pour Installation et Mise à jour

Lancer l'App-Manager avec la commande `<strong>app-manager</strong>`. L'utilitaire va lister l'ensemble des composants myfab installés ou disponibles à l'installation. Pour lancer l'installation ou la mise à jour, taper le numéro correspondant, en l'occurrence 0 et valider par Entrer.

[![image-1664361237256.png](https://docs.myfab.fr/uploads/images/gallery/2022-09/scaled-1680-/image-1664361237256.png)](https://docs.myfab.fr/uploads/images/gallery/2022-09/image-1664361237256.png)

Vous pouvez installer ou mettre à jour d'autres éléments en tapant les numéros correspondants. Tapez "**\***" pour terminer la sélection puis confirmer pour lancer le traitement. Le mot de passe Open-Prod vous sera alors demandé.

Un nouveau terminal va s'ouvrir pour exécuter le traitement. Suivre attentivement la progression dans cette fenêtre et renseigner les éléments nécessaires demandés par le script. Une fois le traitement terminé, s'il a réussi, le terminal se ferme et un message de confirmation est indiqué dans le terminal initial d'où a été lancé la commande.

<p class="callout warning">En cas d'erreur, le terminal ouvert pour le traitement reste ouvert afin d'afficher la raison de l'erreur. Tant qu'un message de succès ou d'erreur n'est pas affiché, le traitement suit son cours et il ne faut pas l'interrompre. </p>

[![image-1664361404719.png](https://docs.myfab.fr/uploads/images/gallery/2022-09/scaled-1680-/image-1664361404719.png)](https://docs.myfab.fr/uploads/images/gallery/2022-09/image-1664361404719.png)

A la fin du traitement, il est nécessaire de fermer le terminal et d'en lancer un nouveau pour bénéficier des modifications.

#### 3. Première installation d'Open-Prod et des modules myFAB

1\. **MAJ scripts myhelp**. Lancer l'App-Manager avec la commande `<strong>app-manager</strong>`. L'ancer la commande 0 puis \* pour mettre à jour les scripts myhelp (sauf si ceux-ci vinnent juste d'être installés).

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/F7pimage.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/F7pimage.png)

2\. **Installation Open-Prod**. Lancer l'App-Manager avec la commande `<strong>app-manager</strong>`. L'ancer la commande 1 puis \* pour installer Open-Prod.

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/IfTimage.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/IfTimage.png)

Fermer et relancer une connexion SSH comme demandé.

Re lancer l'App-Manager avec la commande `<strong>app-manager</strong>`. Re l'ancer la commande 1 puis \* pour installer Open-Prod. Passer en sudo. L'installation se poursuit.

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/Babimage.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/Babimage.png)

Ne pas utiliser l'utilisateur Git open-Prod par défaut et renseigner le compte Git Open-Prod disponible dans notre [VaultWarden](https://vaultwarden.1life.fr/#/vault?search=Acc%C3%A8s%20GIT%20Objectif-pi%20%C2%A0pour%20app-manager) (rangé sous "Accès GIT Objectif-pi pour app-manager". Rensiegner User, email et mot de passe du Git Open-Prod.

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/nK3image.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/nK3image.png)

L'installation se poursuit avec le déploiement de paquets.

Indiquer ensuite le nombre d'utilisateurs Opne-Prod qui vont travailler sur Open-Prod (pour le réglage automatique de certains paramètres : worker, mémoire, etc.). Si la détéection indique que l'environnement n'est pas taillé pour ce nombre d'utilisateurs un réglage manuel des paramètres va être réalisé en fin d'ainstallation.

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/Klwimage.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/Klwimage.png)

L'installation se poursuit avec le déploiement de tous les paquets.

Une fois l'ensemble de l'insallation réalisée un message indique l'URL pour se connecter à Open-Prod et la fin du traitement.

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/NBcimage.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/NBcimage.png)

NOTA : l'installation d'Open-Prod se réalise par défaut en branche MASTER. Si une autre branche doit être utilisée, <span style="text-decoration: underline;">redémarrer le service Open-Prod</span> (via `<strong>openprod-restart</strong>`), relancer une mise a jour Open-Prod via l'app-manager (toujours option 1). A la demande de changement de branche répondre OUI et indiquer la branche souhaitée. En fin de mise à jour <span style="text-decoration: underline;">redémarrer à nouveau le service Open-Prod</span> avant de faire d'autres manipulations. Verifier que le service Open-Prod est fonctionnel avec `<strong>openprod-status</strong>` et via `<strong>openprod-info</strong>` que la bonne branche est utilisée.

**Le 22/11/2025**. Pour la version 10.0.0.2 en branche intégration, corriger la dépendence encode\_pdf417 qui bloque le redémarrage du service quand on passe de Master à Intégration.

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/dlmimage.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/dlmimage.png)

Arréter le service Open-Prod, lancer la commande ci-dessous, relancer le service Open-Prod et vérifier son statut. Tout doit être OK maintenant. Ce sujet est à corriger dans les scripts myfab (mauvaise gestion de app-manager au rechargement des dépendance quand on change de branche).

```
/etc/openprod_home/openprod10/venv3/bin/python3.10 -m pip install  pdf417gen
```

#### 4. Première installation des modules myFAB

1\. **Installation modules myFAB**. Lancer l'App-Manager avec la commande `<strong>app-manager</strong>`. L'ancer la commande 2 puis \* pour installer les modules myFAB. Valider le traitement et laisser se dérouler l'installation.

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/co4image.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/co4image.png)

**2.Vérifications**. Verifier l'ensemble des versions déployées avec `<strong>openprod-info</strong>` (cohérence branche, version, date). Vérifier l'accès à Open-Prod avec un navigateur via l'URL : http://\[ip ou nom environnement\] :8069. Open-Prod doit rerooter la connexion sur http://\[ip ou nom environnement\] :8069/web/database/selector et proposer de créer une nouvelle base.

#### 5. Déploiement Jasper Server pour le reporting (V9 ou migration V9 vers V10 avec conservation Jasper)

Si l'environnement est une V9, déployer Jasper Server via `<strong>app-manager</strong>` via l'option 4. Cette installation peiut être faite sur le même serveur qu'Open-Prod (cas à privillégier) ou sur un second environnement dédié à cette tache.

Actuellement, le déploiement demande à forcer <span style="text-decoration: underline;"><span style="color: rgb(0, 0, 0); text-decoration: underline;">avant l'installation de Jasper</span></span> l'installation d'une librairies phantomjs en version 2.1.1. Informations sur ce sujet :

- - [https://tecadmin.net/install-phantomjs-on-ubuntu/](https://tecadmin.net/install-phantomjs-on-ubuntu/)
    - [https://github.com/ariya/phantomjs/issues/15449](https://github.com/ariya/phantomjs/issues/15449)

Pour ce faire lancer les commandes ci-dessous. Si jamais le paquet n'est pas disponible le télécharger ici :

```
sudo apt-get install build-essential chrpath libssl-dev libxft-dev

sudo apt-get install libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev

wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2

sudo tar -xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/share/

sudo ln -sf /usr/local/share/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin

export OPENSSL_CONF=/etc/ssl
```

Vérifier ensuite la version de Phantomjs

```
phantomjs --version
```

Vous pouvez maintenant installer Jasper avec `<strong>app-manager</strong>` , option 4 en suivant les consignes du script.

La bonne installation de Jasper Server doit perrmettre d'accéder à la page de Tomcat et à la page de connexion de Jasper server vi les url ci-dessous :

- - [http://\[ip-server\]:8080/](http://%5Bip-server%5D:8080/) ==&gt; page Apache Tomcat/8.5.34
    - [http://\[ip-server\]:8080/jasperserver/login.html](http://%5Bip-server%5D:8080/jasperserver/login.html) ==&gt; page web de connexion à Jasper server (user = jasperadmin et pwd = jasperadmin)

Il faut maintenant installer les bibliothèques de report dans Jasper Server en utilisant `<strong>app-manager</strong>` , option 5 (normalement le déploiement de Jasper les a déjà installées) et option 6 pour les report standrds myFAB.

#### 6. Installation du gestionnaire d'impression CUPS Linux

Le gestionnaire d'impression CUPS sous Linux est essantiel pour générer des impressions directes sur imprimante (sans téléchargement intermédiare du PDF dans le navigateur). Un simple déploiement du module sous Ubuntu est réalisé. Le reste du paramétrage (déclaration des imprimantes, paramétrage es drivers, paramétrage d'Open-Prod pour éditer directement sur imprimante, etc.) est à faire par le client ou son prestataire informatique en lien avec le consultant du déploiement 1Life.

Lancer `<strong>cups-install</strong>` et laisser se dérouler l'installation.

Controler l'accès à cups via un navigateur avec l'URL : http://\[ip ou nom environnement\] :631. La sélection du menu "Administration" de cups doit vous rerooter sur l'URL : https://\[ip ou nom environnement\]/admin et demander les crédential administrateur.

#### 7. Vérifier l'accès aux services

L'insemble des apllicatifs sont maintenant normalement accessibles via les différents ports. Si ce n'est pas le cas, vérifier que ces ports sont accessibles au travers du routage réseau avec un outil comme Nmap (Linux ou Windows).

Ports de l'environnement :

<table border="0" cellpadding="0" cellspacing="0" id="bkmrk-port-service-environ" style="border-collapse: collapse; width: 335px;" width="209"><colgroup><col style="width: 60px;" width="31"></col><col style="width: 94px;" width="60"></col><col style="width: 458.667px;" width="118"></col></colgroup><tbody><tr style="height: 22.5pt;"><td class="xl66 align-center" height="30" style="height: 22.5pt; width: 23pt;" width="31">**Port**</td><td class="xl66 align-center" style="border-left: none; width: 45pt;" width="60">Service</td><td class="xl66 align-center" style="border-left: none; width: 89pt;" width="118">Environnement <span class="font6">concerné et outil</span></td></tr><tr style="height: 15.0pt;"><td class="xl65 align-center" height="20" style="height: 15.0pt; border-top: none; width: 23pt;" width="31"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">22</span></td><td class="xl65 align-center" style="border-top: none; border-left: none; width: 45pt;" width="60"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">SSH</span></td><td class="xl65" style="border-top: none; border-left: none; width: 89pt;" width="118"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Ubuntu - accès d'administration distant Linux</span></td></tr><tr style="height: 15.0pt;"><td class="xl65 align-center" height="20" style="height: 15.0pt; border-top: none; width: 23pt;" width="31"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">80</span></td><td class="xl65 align-center" style="border-top: none; border-left: none; width: 45pt;" width="60"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Pgadmin</span></td><td class="xl65" style="border-top: none; border-left: none; width: 89pt;" width="118"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">PostgreSQL - Client Graphique PostgreSQL</span></td></tr><tr style="height: 15.0pt;"><td class="xl65 align-center" height="20" style="height: 15.0pt; border-top: none; width: 23pt;" width="31"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">8080</span></td><td class="xl65 align-center" style="border-top: none; border-left: none; width: 45pt;" width="60"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">HTTP</span></td><td class="xl65" style="border-top: none; border-left: none; width: 89pt;" width="118"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Jasper - Serveur Apache Tomcat Jasper</span></td></tr><tr style="height: 15.0pt;"><td class="xl65 align-center" height="20" style="height: 15.0pt; border-top: none; width: 23pt;" width="31"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">8068</span></td><td class="xl65 align-center" style="border-top: none; border-left: none; width: 45pt;" width="60"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">HTTP</span></td><td class="xl65" style="border-top: none; border-left: none; width: 89pt;" width="118"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Open-Prod V9 - Accès client web OPP</span></td></tr><tr style="height: 15.0pt;"><td class="xl65 align-center" height="20" style="height: 15.0pt; border-top: none; width: 23pt;" width="31"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">8069</span></td><td class="xl65 align-center" style="border-top: none; border-left: none; width: 45pt;" width="60"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">HTTP</span></td><td class="xl65" style="border-top: none; border-left: none; width: 89pt;" width="118"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Open-Prod V10- Accès client web OPP</span></td></tr><tr style="height: 15.0pt;"><td class="xl65 align-center" height="20" style="height: 15.0pt; border-top: none; width: 23pt;" width="31"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">443</span></td><td class="xl65 align-center" style="border-top: none; border-left: none; width: 45pt;" width="60"><span lang="EN-US">HTTPS</span></td><td class="xl65" style="border-top: none; border-left: none; width: 89pt;" width="118"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Open-Prod- Accès client web OPP</span></td></tr><tr><td class="align-center" style="border-top: none; width: 23pt;"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">631</span></td><td class="align-center" style="border-top: none; border-left: none; width: 45pt;"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Cups</span></td><td style="border-top: none; border-left: none; width: 89pt;"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Ubuntu -Serveur d'impression Linux</span></td></tr><tr style="height: 15.0pt;"><td class="xl65 align-center" height="20" style="height: 15.0pt; border-top: none; width: 23pt;" width="31"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">5432</span></td><td class="xl65 align-center" style="border-top: none; border-left: none; width: 45pt;" width="60"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">PostgreSQL</span></td><td class="xl65" style="border-top: none; border-left: none; width: 89pt;" width="118"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">PostgreSQL - Port PostgreSQL pour jaspestudio</span></td></tr><tr style="height: 15.0pt;"><td class="xl65 align-center" height="20" style="height: 15.0pt; border-top: none; width: 23pt;" width="31">9090</td><td class="xl65 align-center" style="border-top: none; border-left: none; width: 45pt;" width="60">Cockpit</td><td class="xl65" style="border-top: none; border-left: none; width: 89pt;" width="118">Ubuntu - Outil graphique d'administration Linux</td></tr><tr style="height: 15.0pt;"><td class="xl65 align-center" height="20" style="height: 15.0pt; border-top: none; width: 23pt;" width="31"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">3389</span></td><td class="xl65 align-center" style="border-top: none; border-left: none; width: 45pt;" width="60"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">RDP</span></td><td class="xl65" style="border-top: none; border-left: none; width: 89pt;" width="118"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Ubuntu - Accès TSE à Linux</span></td></tr></tbody></table>

Vérifier en local, via SSH sur le serveur :

```
target=172.18.185.80; for p in 22 80 8080 443 8068 8069 5432 9090 631; do timeout 2 bash -c "echo > /dev/tcp/$target/$p" 2>/dev/null && echo "Port $p : OUVERT" || echo "Port $p : FERMÉ/Filtré"; done
```

Commande Nmap (distante par exemple) pour l'ensemble de ces ports :

```
nmap -sS -p 22,80,8080,443,8068,8069,5432,9090,631 --max-rtt-timeout 2s --initial-rtt-timeout 200ms --min-rate 1 --max-retries 3 -Pn --reason [ip du serveur]
```

#### 8. Création et paramétrage d'une base de test d'installation

La création d'une base de test doit permettre de valider le bon fonctionnenment de l'installation des fonctions :

- Open-Prod
- Modules myFAB
- Edition QWeb (ou Jasper si V9)

1. **Création Base Open-Prod**. Se connecter sur l'URL http://\[ip ou nom environnement\] :8069. Renseigner : 
    1. Le mastetr Password (openprod par défaut)
    2. Database name : libre
    3. Login : toujours mettre admin par défaut
    4. Password : toujours mettre admin par défaut
    5. Phone number : laisser vide
    6. Language : French / Français
    7. Country : France

Une fois la base créée Open-Prod redonne la main pour se connecter.

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/T5iimage.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/T5iimage.png)

2\. **Prise en compte module myFAB par la base**. Eventuellement, si aucun module myFAB n'apparait dans les applications, mettre à jour la base avec les modules myFAB via un sql-update. Se connecter sur le serveur Open-Prod et Lancer la fonction `<strong>sql-update</strong>`. Sélectionner la base (ou l'ensemble des bases) )à mettre à jour. Valider et attendre la fin du traitement.

3\. **Installation modules myFAB "Fondation".**  Se connecter sur Open-Prod et aller dans : Paramètres &gt; Applications principales &gt; enlever le filtre "module Open-Prod" et saisir "fondation" puis valider. Cliquer sur "Activer" sur le mudule "myFAB Fondation".

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/K8yimage.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/K8yimage.png)

**NOTA :** En cas d'erreur d'installation du module, lancer les logs temps réel coté serveur via la commande ci-dessous. Regarder si un message d'erreur apparait. Contacter la R&amp;D si besoin.

Lancement des traces client coté serveur :

```
 tail -f /var/log/openprod/openprod-server.log
```

Exemple d'erreur sur l'installation des modules myFAB avec un module DSSKEY de paramiko :

![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/WJlimage.png)

<span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">Pour corriger, lancer la comande ci-dessous :</span>

```
/etc/openprod_home/openprod10/venv3/bin/python3.10 -m pip uninstall paramiko
/etc/openprod_home/openprod10/venv3/bin/python3.10 -m pip install paramiko==3.5.1
```

<span style="color: rgb(0, 0, 0);">Redémarrrer le service Open-Prod avec la commande `<strong>openprod-restart</strong>`et r</span><span style="color: rgb(0, 0, 0);">elancer l'activation du module myFAB Fondation.</span>

<span style="color: rgb(0, 0, 0);">Attention le traitement peut être long. Le module myFAB Fondation va activer un grand nombre de modules Open-Prod dont la comptabilité qui demander confirmation des paramétrages à utiliser :</span>

<span style="color: rgb(0, 0, 0);">Configuration des données de comptabilité. Valider par défaut via "Continuer".</span>

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/rBIimage.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/rBIimage.png)

Configuration des options comptables. Valider par défaut via "Appliquer".

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/H4simage.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/H4simage.png)

Configuration du module "myFAB Base" (ou Fondation). Cocher les deux options et valider par "Continuer".[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/J92image.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/J92image.png)

Une fois le déploiement de myFAB fondation réalisé Open-Prod rend la main. Les diférrents modules activés ont ajouté des menus complémentaires.

4\. **Test impression**.

**Tester les impressions sous Jasper** : a documenter

**Tester les impressions sous QWeb** ; En se rendant sur Partenaires &gt; Partenaires &gt; Tiesr nommé "My Company". Compléter l'adresse du tiers et valiser la Fiche. Ensuite, avec le bouton des éditions lancer l'édition de l'adresse du pertenaire et vérifier que le PDF se génère et qu'il est lisible.

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2025-11/scaled-1680-/fVMimage.png)](https://docs.myfab.fr/uploads/images/gallery/2025-11/fVMimage.png)


#### 7. Personnalisation des réglages systèmes selon les caractéristiques de l'environnement client.

L'installation par défaut d'Open-Prod et de PostgreSQL doit être ensuite personnalisée sur crtains réglages propres au contexte du client. Nous prendrons essentiellement en compte :

- Le nombre d'utilisateurs connectés à Open-Prod chez le client
- La disponibilité du nombre de coeurs CPU sur l'environnement physique ou virtuel mis à disposition
- La disponibilité mémoire (RAM) sur l'environnement physique ou virtuel mis à disposition

Ces informations vont nous permettre de régler les paramètres ci dessous :

1\. **Nombre de worker Open-Prod.**

Par défaut un environnement Open-Prod est réglable en worker. Le worker est une unité de traitement Open-Prod qui prend en charge le traitement fonctionnel d’une demande faite par un utilisateur sous Open-Prod (calcul de besoin, validation d’une commande, lancement des of, etc.). Chaque traitement peut être très court comme beaucoup plus long et sollicite donc un worker de manière instantanée ou beaucoup plus longuement. Par exemple si le client a de déclarer 8 worker sur son environnement cela indique que son système possède 8 unités de traitement disponibles à tout moment pour passer jusqu’à 8 traitements utilisateur en parallèle. Chaque traitement se fait sur <u>un et un seul worker</u>. Si plus de 8 traitements simultanés sont demandés dans ce cas une file d’attente est créée et chaque unité de traitement (worker) rendant la main prend le traitement suivant qui est en file d’attente. Il est donc tout à fait normal qu’un traitement sollicite un seul worker, que les autres worker ne soient pas sollicités par ce même traitement (c’est le fonctionnement standard du serveur applicatif Open-Prod). Ceci n’est pas intrinsèquement une cause de ralentissement ou de dysfonctionnement d’Open-Prod.

Seuls certains traitements très spécifiques d’Open-Prod en V9 sont multithreads (import des écritures comptable par exemple).

**Pour info sur le réglage des worker** : l’objectif avec cette mécanique de worker est d’avoir un nombre d’unités de traitement simultanées (nommée worker) cohérente avec le nombre d’utilisateurs Open-Prod et les types de traitements courants demandés. Pour pouvoir mettre en place ces worker il faut un certain nombre de threads fournit par les processeurs de l’environnement. Pour connaitre le nombre de threads il faut prendre le nombre de cores du processeur multiplié par deux (sur du Intel si le processeur possède la technologie [hyperthreading](https://www.google.com/search?sca_esv=f6bc877b3d7fa12d&q=hyperthreading&spell=1&sa=X&ved=2ahUKEwiMhPOtqtKNAxVqTqQEHZr_BB0QkeECKAB6BAgIEAE)), multiplié par le nombre de processeurs physiques disponibles sur l’environnement. On obtient donc le nombre de threads de l’ensemble des processeurs. Il ne peut pas y avoir plus de worker que de threads. Il n’y a pas forcément autant de worker que de threads disponibles. Chaque worker consomme au repos comme en charge une certaine taille de mémoire RAM. Il faut donc avoir la bonne quantité de mémoire correspondant au nombre de worker que l’on active.

**Influence de la fréquence processeur sur le temps de traitement d’un worker.** Ce qu’il faut comprendre c’est que chaque traitement d’une demande doit être le plus rapide possible pour libérer le worker au plus vite et pouvoir l’attribuer à une autre tâche. La rapidité de traitement d’une tache par un worker dépend essentiellement de la fréquence du processeur. Plus cette fréquence est élevée plus le worker va réaliser rapidement son traitement et se libérer pour faire autre chose. C’est pour cela que nos prérequis demandent l’utilisation d’un processeur de fréquence supérieur ou égale à 3Ghz.

**Cas des environnements avec un nombre de worker à 0.** Un environnement de test mono utilisateur peut être paramétré avec un nombre de worker à 0. Dans ce cas cela permet uniquement un usage mono utilisateur de cet environnement, sans d’autres personnes connectées à ce système et réclamant des traitements à Open-Prod. Le fait d’avoir 0 worker es l’équivalent d’un système avec un seul worker aussi bien pour les traitements que lpour es Cron.