Enmasse est un outil en ligne de commande qui automatise le déploiement de la configuration de Zato, comme les connexions REST ou AMQP, les définitions du scheduler et du cache ou tout autre objet.
Pendant le développement, on utilise généralement l'interface graphique du Dashboard pour définir de nouveaux éléments, c'est-à-dire qu'il est généralement pratique de remplir un formulaire pour disposer d'un nouveau canal REST.
Lorsqu'une solution, ou une partie incrémentale de celle-ci, est prête pour un test plus large, on utilise enmasse pour l'exporter du serveur de développement et l'importer sur un serveur de test.
Ensuite, le même fichier d'exportation enmasse peut être utilisé pour configurer les serveurs de production.
La boucle du workflow revient maintenant aux développeurs qui continuent à utiliser Dashboard pour ajouter de nouveaux éléments de serveur
Toutes les étapes d'exportation et d'importation peuvent faire partie de pipelines CI/CD qui automatisent le provisionnement des environnements Zato.
Tout ce qui peut être déclaré avec l'interface graphique de Dashboard peut également être fait avec enmasse. Par exemple, dans la capture d'écran ci-dessous, un nouveau canal REST est en cours de définition.
Ensuite, enmasse peut être utilisé pour exporter un tel canal vers un fichier YAML ou JSON.
[...]
channel_plain_http:
- cache_expiry: 0
cache_name:
is_rate_limit_active: false
match_slash: true
name: "My REST Channel"
url_path: "/api/my/rest/channel"
service: "pub.zato.ping"
[...]
Ces fichiers d'exportation peuvent être stockés dans un dépôt git. De manière itérative, les développeurs ajoutent de nouvelles définitions au fichier en fonction de l'état actuel de leur travail. Au final, le fichier contiendra tout ce qui est nécessaire pour configurer un projet ou une solution particulière.
Une technique courante est de spécifier les mots de passe comme ci-dessous - avant que enmasse ne s'exécute, une simple invocation sed change les caractères de remplacement en mots de passe réels.
Il est possible d'utiliser des variables d'environnement dans les fichiers enmasse, en utilisant la syntaxe indiquée ci-dessous. Les valeurs réelles seront lues à partir de l'environnement par les serveurs Zato lorsqu'ils recevront un fichier de configuration à importer.
En général, les seules modifications nécessaires dans un fichier enmasse sont l'ajout d'espaces réservés tels que celui ci-dessus, le changement d'adresse IP ou la modification des noms d'utilisateur. Notez également qu'un fichier enmasse contiendra diverses informations internes - ne les modifiez pas, elles sont nécessaires à enmasse pour réimporter un tel fichier. Un fichier d'exportation peut également contenir des objets dont vous n'avez pas besoin, par exemple des définitions de canaux supplémentaires qui ne sont pas nécessaires dans un projet particulier - n'hésitez pas à les supprimer si nécessaire.
Dans le cas d'un cluster multi-serveurs, il suffit qu'un serveur importe un fichier enmasse. Il se synchronisera automatiquement avec tous les autres serveurs du cluster.
Un fichier enmasse contient uniquement la configuration, il ne contient pas les services dont la configuration peut dépendre. De tels services doivent être déployés avant que enmasse ne s'exécute pour importer un fichier.
$ zato enmasse --import \
--replace-odb-objects \
--input ./zato-export.yml \
/path/to/server/
[...]
$
Un chapitre à part explique comment déployer des services et d'autres codes