system_administration:automation:deploy_manager

Deploy Manager, gérer odoo avec odoo

deploy_manager est un module odoo (version 14.0) qui permet de créer et de gérer des instances odoo sur des serveurs préparés.

system_administration:diagram1.png

Un seveur préparé est un serveur sur lequel est déployé le dépôt deployctl_rembin dans le HOME de l'utilisateur principal à l'emplacement ~/rembin. FIXME

cd ; \
    git clone git@git.elosys.net:sys/rembin.git ; \
    cd rembin; \
    ./init.sh

Le script init.sh met en place une partie importante de l'infrastructure nécessaire pour lancer des instances odoo avec le module deploy_manager.

Après le lancement du script, le dossier personnel de l'utilisateur doit contenir l'arborescence suivante:

.
├── extra-addons
├── filestore
├── postgres
├── rembin
└── wproxy

L'autre partie importante de l'infrastucture qui n'est pas prise en charge par le script init.sh est la mise en place d'un sous domaine wildcard pointant vers le serveur ainsi qu'un certificat SSL correspondant.

Le serveur fait tourner deux services docker en permanence :

  1. postgres, le gestionnaire de bases de données commun à toutes les instances odoo qui seront créées.
  2. wproxy, le proxy nginx qui redirige vers les instances odoo et qui se charge également de la certification SSL.

SSH est la méthode de connexion qu'utilise le module deploy_manager pour se connecter aux serveurs préparés.

Une section deploy_manager est disponible dans le menu configuration générale de odoo quand le module est installé. Cette section permet de charger une clé privée ssh.

Les serveurs préparés doivent de leurs côtés autoriser l'accès en ajoutant la clé ssh public correspondante au fichier .ssh/authorized_keys de l'utilisateur principal.

Le module deploy_manager présente l'arborescence de menus suivante :

Dans ce menu, la vue par défaut liste les instances odoo hébergées sur le serveur dockerservice.

dockerservice est un serveur de staging.

La vue formulaire permet de renseigner manuellement un service préexistant sur le serveur dockerservice.

Une fois renseigné, les fonctionnalités suivantes permettent de contrôler le service, à savoir :

  1. La mise à l'arrêt, le démarrage et le redémarrage du service.
  2. Lancement de la synchronisation du service avec la production.
  3. Lister et télécharger des modules.

Dans ce menu mal nommé, la vue par défault présente la liste des instances créées sur le serveur répondant au nom de domaine live.elosys.net.

Le serveur live.elosys.net héberge des instances éphémères qui sont destinées à offrir un support de test aux futur clients qui souhaitent avoir un aperçu sur les applications payantes mise à disposition par Elosys sur le site https://apps.odoo.com.

Ce serveur est également utilisé par les équipes internes d'Elosys pour tester rapidement les mises à jours sur ces mêmes applications.

La création d'un nouvel enregistrement dans ce model elo.instance crée une nouvelle instance odoo sur le serveur cible.

Sur la vue formulaire de création d'une nouvelle instance, il est possible de sélectionner les modules à installer.

La mise à jour de la liste des modules est gérée par un script externe qui sera détaillé sur un autre post.

Dans ce menu, la vue par défault présente la liste des instances créées sur le serveur répondant au nom de domaine om.elosys.net.

Le serveur om.elosys.net héberge des instances de production répondant à une offre commercial d'Elosys : Serveur odoo mutualisé.

Contrairement aux instances créées sur live.elosys.net, les instances odoo mutualisées ont chacune un gestionnaire de base de données dédié.

Le fonctionnement actuel du module à la création d'un nouvel enregitrement sur le model elo.instance devrait être révisé pour prendre en charge cette spécification.

Une explication plus détaillée sur la différence sera abordée sur un autre post.

Ce menu list les serveurs préparés sur lesquelles des instances peuvent être déployées depuis les menu.

Les informations nécessaires pour rendre une machine accessible au module deploy_manager sont :

  • L'adresse IP ou l'adresse réseau sur lequel le serveur est accessible.
  • Le nom d'utilisaeur pour se connecter au serveur
  • Le port du service SSH sur le serveur.
  • Le nom de domaine du serveur. Chaque nouvelle instances Odoo aura son propre sous-domaine.

Ce model liste les versions des images odoo disponibles. Ces images peuvent ainsi être attribuées aux Machines rendant ainsi possible de lancer des instances odoo de cette version sur le serveur.

Le processus de création d'une nouvelle instance odoo sur le serveur live.elosys.net peut être décomposé de la manière suivante :

À la création et à l'enregistrement d'un nouveau record sur le model elo.instance, une commande est envoyé vers le serveur live.elosys.net.

Cette commande lance le script start_container avec des arguments tels que le nom de l'instance, la version odoo souhaitée, et la list des applications odoo elosys apps à installer.

Pour rappel, le script start_container fait partie du dépôt deployctl_rembin.

system_administration:live-sys-arch.png

  • system_administration/automation/deploy_manager.txt
  • Last modified: 2022/10/31 18:08
  • by aziz