Ansible UI : comparaison d’AWX et de Semaphore UI

Denis GukovFondateur et directeur technique chez Semaphore UI
18 min de lecture

AWX et Semaphore UI fournissent des interfaces Web et des API pour exécuter l'automatisation au sein d'une équipe. Cette comparaison couvre AWX 24.6.1 et Semaphore UI 2.20.0, depuis les outils pris en charge et le déploiement jusqu'aux workflows, au contrôle d'accès et à la maintenance continue.

Discuter de cet article avec l’IA

Aperçu

Un playbook Ansible commence souvent par une commande qu’un ingénieur exécute sur son ordinateur portable. Lorsque les déploiements, l’application de correctifs et le renouvellement des certificats deviennent des responsabilités partagées, l’équipe a besoin d’un espace commun pour lancer ces tâches, fournir les paramètres, gérer les identifiants et consulter les résultats. AWX et Semaphore UI offrent cette couche commune avec des configurations de tâches enregistrées, des planifications, des autorisations et un historique d’exécution.

AWX organise l'automatisation autour d’Ansible. Les équipes connectent les playbooks stockés dans Git aux inventaires et aux identifiants, les enregistrent en tant que modèles de tâches et combinent les tâches en workflows. Les organisations, les équipes et les autorisations contrôlent qui peut utiliser chaque ressource. AWX est un projet open source, tandis que Red Hat Ansible Automation Platform (AAP) est une offre commerciale distincte avec son propre support et son propre cycle de vie.

Semaphore UI repose également sur des tâches réutilisables, avec des playbooks Ansible et des modèles dédiés à Terraform/OpenTofu, Terragrunt, Bash, PowerShell et Python. Les projets regroupent ces modèles, les dépôts, les inventaires, les identifiants et les variables. Un workflow peut relier le provisionnement de l’infrastructure as code (IaC) à la configuration des hôtes puis à leur maintenance, en réunissant les opérations de ces outils dans une même interface.

Modèles de tâches Semaphore UI pour Ansible, OpenTofu, Terragrunt, Bash et PowerShell dans un seul projet.
Semaphore UI. Différents outils d'automatisation partagent la liste de modèles d'un projet, avec des colonnes configurables.
Liste de modèles AWX affichant les modèles de tâches Ansible et les modèles de workflows réutilisables au sein d'une organisation.
AWX. Les modèles de tâches et de workflows Ansible partagent une liste avec les contrôles d'organisation et de lancement.

Comparaison rapide

Les tâches, identifiants et plannings enregistrés couvrent les opérations Ansible de routine dans les deux produits. Leurs différences plus larges résident dans la couverture des outils, le déploiement et la gestion des ressources. Voici les principales caractéristiques de chacun.

Outils d'automatisation, installation, exécution, workflows, inventaires, contrôle d'accès, identifiants, variables, licence
Critères Semaphore UI AWX
Outils d'automatisation Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell, Python AnsibleAutres outils via des playbooks
Installation Binaire, paquets, Docker, Kubernetes Kubernetes (opérateur), Docker (développement/test)
Plateformes de serveurs Linux, macOS, Windows, FreeBSD Conteneurs Linux (Kubernetes / Docker)
Exécution des tâches Sur le serveur ou sur des machines d’exécution distantes Sur des serveurs d’exécution ou dans des pods de tâches Kubernetes
Workflows Oui, des workflows visuels reliant plusieurs outils d’automatisation Oui, des workflows Ansible visuels avec des sous-workflows réutilisables
Planification Expressions Cron, exécutions uniques Planifications ponctuelles et récurrentes
Gestion des inventaires Inventaires statiques et Git, plugins dynamiques, NetBox et autres sources externes Inventaires statiques et dynamiques, mises à jour gérées, inventaires construits
Contrôle d’accès RBAC, rôles de projet, rôles personnalisés, autorisations de modèleLDAP, OIDC, TOTP local RBAC, rôles d'organisation et d'équipe, autorisations par ressourceLDAP, OIDC, SAML, MFA via un fournisseur d'identité
Informations d'identification Key Store, clés SSH, mots de passe, intégrations de coffres-forts externes Objets d’identification, clés SSH, mots de passe, intégrations de coffres-forts externes
Variables Groupes de variables réutilisables, variables supplémentaires, variables d’environnement, questionnaires de lancement Variables d’inventaire, d’hôte et de groupe, variables supplémentaires, questionnaires de lancement
Licence MIT (Community)Conditions commerciales distinctes pour les éditions payantes Apache 2.0

Pour les tâches Ansible courantes, les deux produits permettent le lancement, la planification et la consultation de l’historique d’exécution. Les principales différences concernent la gestion des inventaires et des autorisations, les outils exécutés directement et les modes de déploiement.

Les fonctionnalités Semaphore UI présentées ici couvrent Community, Pro et Enterprise. Les indications de disponibilité précisent l’édition minimale requise. La section « Licences et support » détaille les offres commerciales.

Comparaison des fonctionnalités

Un déploiement peut provisionner l’infrastructure, configurer les hôtes et attendre une approbation avant de modifier la production. Le lieu d’exécution des étapes, l’échange de leurs résultats et leur contrôle font ressortir les différences les plus utiles entre les produits.

Installation et configuration

L'installation recommandée d’AWX utilise Kubernetes. Semaphore UI prend également en charge les déploiements autonomes, de sorte que l'infrastructure nécessaire pour héberger le service constitue un premier point de différence.

Pris en chargePartiellement pris en chargeNon pris en charge
Installation et configuration: AWX et Semaphore UI
Critères Semaphore UI AWX
Binaire autonome Oui Non
Packages natifs Linux OuiDEB / RPM Non
Déploiement Docker Oui PartielDéveloppement et tests uniquement
Déploiement Kubernetes OuiChart Helm OuiAWX Operator
Serveur natif Windows OuiAnsible nécessite WSL, un conteneur ou un runner Linux NonConteneurs Linux
Haute disponibilité OuiEnterpriseBase de données partagée, Redis, équilibreur de charge OuiRéplicas, configurer le basculement de la base de données séparément

Le déploiement recommandé par AWX combine l'opérateur Kubernetes, PostgreSQL et l'exécution de tâches conteneurisées. Sa configuration Docker est destinée au développement et aux tests. Pour une équipe Kubernetes existante, l'opérateur suit un modèle opérationnel familier. L'introduction d'un cluster uniquement pour AWX ajoute une infrastructure à maintenir.

Semaphore UI prend aussi en charge Kubernetes via Helm, ainsi que l’installation par binaire, paquet natif ou Docker avec SQLite, MySQL ou PostgreSQL. Une installation autonome peut utiliser un serveur existant sans cluster, permettant de démarrer avec une infrastructure plus légère et de choisir le modèle d’exploitation.

Le système d'exploitation du serveur est distinct de l'exécution des tâches. Semaphore UI possède un binaire de serveur Windows natif, tandis qu’Ansible a toujours besoin de Linux, macOS, d'un conteneur approprié ou de WSL. Un runner Linux peut exécuter des tâches pour un service Web hébergé ailleurs. Les deux plates-formes peuvent gérer les cibles Windows via Ansible.

Pour une haute disponibilité, les options de mise à l'échelle d’AWX et le déploiement HA de Semaphore UI Enterprise nécessitent un basculement de base de données et une planification de récupération. Les installations déconnectées nécessitent en outre un chemin de livraison pour les packages, les images d'exécution, les mises à jour et toute activation de licence payante.

Outils d'automatisation

Un déploiement peut être provisionné avec Terraform/OpenTofu, configuré avec Ansible et terminé avec Python. AWX appelle les autres outils via des playbooks, tandis que Semaphore UI fournit des modèles de tâches directes.

Pris en chargePartiellement pris en chargeNon pris en charge
Outils d'automatisation: AWX et Semaphore UI
Critères Semaphore UI AWX
Playbooks Ansible Oui Oui
Terraform/OpenTofu OuiModèle de tâche natif PartielVia des playbooks Ansible
Terragrunt OuiModèle de tâche natif PartielVia des playbooks Ansible
Bash OuiModèle de tâche natif PartielVia des playbooks Ansible
PowerShell OuiModèle de tâche natif PartielVia des playbooks Ansible
Python OuiModèle de tâche natif PartielVia des playbooks Ansible

AWX maintient Ansible au centre de l'exécution. Les playbooks peuvent appeler Terraform/OpenTofu, Terragrunt, Bash, PowerShell ou Python via des modules ou des commandes lorsque l'environnement d'exécution contient les dépendances. Cela convient aux équipes qui décrivent déjà leur processus de provisionnement dans Ansible.

Semaphore UI donne à ces outils leurs propres modèles. Les équipes peuvent lancer directement l'automatisation existante et la combiner dans des workflows sans maintenir de playbooks supplémentaires simplement pour appeler un autre outil. Une tâche OpenTofu peut provisionner l'infrastructure, une tâche Ansible configurer les hôtes et une tâche Python effectuer une opération associée, le tout dans une seule interface.

Semaphore UI Pro propose un backend HTTP intégré pour le state Terraform/OpenTofu, ainsi que des workspaces et des options d’exécution. Les équipes peuvent conserver le state partagé dans Semaphore UI sans exploiter de backend distinct. Avec AWX, le processus Terraform utilise le backend configuré par l’équipe. La source d’inventaire Terraform State d’AWX lit le state pour découvrir les hôtes, mais ne le stocke pas.

L’exécution de Terraform dans Semaphore UI 2.20 présente deux limites importantes. Une exécution normale affiche un plan avant son application, mais n’enregistre pas automatiquement ce plan pour appliquer ensuite exactement le même fichier. Si l’approbation doit porter sur la modification précise proposée, configurez le processus pour enregistrer le plan et le transmettre à apply. Les commandes Terraform par défaut désactivent également le verrouillage du state, sauf modification explicite, même si le backend le prend en charge. Vérifiez ces deux paramètres pour les exécutions en production.

Modèles et planification

AWX appelle une configuration Ansible enregistrée un Job Template. Semaphore UI utilise le terme Task Template. Chaque lancement crée une tâche distincte, appelée job dans AWX ou task dans Semaphore UI, avec son propre statut, ses journaux et son résultat. Le modèle conserve les paramètres réutilisables, tandis que les questionnaires et les planifications déterminent les valeurs saisies et le moment de l’exécution.

Pris en chargePartiellement pris en chargeNon pris en charge
Modèles et planification: AWX et Semaphore UI
Critères Semaphore UI AWX
Configuration de tâche enregistrée Oui Oui
Questionnaires de lancement (paramètres) Oui Oui
Ensembles de variables réutilisables OuiVariable Groups partagés entre modèles PartielVariables d’inventaire ou fichiers dans Git
Branche du dépôt au lancement Oui Oui
Exécutions planifiées OuiExpressions Cron et exécutions uniques OuiPlanifications ponctuelles et récurrentes

Dans AWX, un Job Template sélectionne un projet, un playbook, un inventaire et des identifiants, ainsi qu’un environnement d’exécution contenant les dépendances nécessaires. Dans Semaphore UI, un Ansible Task Template sélectionne un dépôt, un playbook et un inventaire, avec des Variable Groups réutilisables et les options Ansible dans le même formulaire. Les ingénieurs préparent cette configuration une seule fois. Leurs collègues peuvent ensuite lancer l’opération sans la reconstituer à chaque fois.

Éditeur d’un Ansible Task Template dans Semaphore UI avec dépôt, playbook, inventaire, Variable Groups et paramètres demandés au lancement.
Semaphore UI. Un Ansible Task Template avec des variables partagées et des options de lancement.
Éditeur d’un Job Template dans AWX avec projet, inventaire, playbook, identifiants et environnement d’exécution.
AWX. Un Ansible Job Template avec sélection des ressources et paramètres demandés au lancement.

Les questionnaires de lancement permettent de fournir les paramètres sans modifier un playbook. AWX prend en charge des validations, notamment des limites de longueur du texte. Les Survey Variables de Semaphore UI proposent des champs typés, du texte multiligne, des secrets et des choix simples ou multiples. Les groupes de variables réutilisables séparent la configuration partagée des valeurs saisies au lancement. AWX permet de partager la configuration via les variables d’inventaire, d’hôte et de groupe ou des fichiers dans Git, sans objet Variable Groups distinct sélectionnable dans plusieurs modèles.

Les deux peuvent exécuter une autre branche du dépôt si la configuration l’autorise. AWX peut demander l’inventaire, les identifiants et d’autres paramètres au lancement. Semaphore UI permet, selon la configuration, de remplacer l’inventaire Ansible et les arguments de ligne de commande. Ces options offrent de la souplesse aux ingénieurs, tout en permettant de limiter les paramètres exposés pour les procédures approuvées.

Les planifications automatisent ces lancements. AWX utilise des paramètres de date de début, d'heure et de récurrence. Semaphore UI prend en charge les expressions cron et les exécutions uniques. Par exemple, 0 2 * * * s'exécute quotidiennement à 02h00 dans le fuseau horaire configuré du planificateur, qui est par défaut UTC. L’une ou l’autre approche peut gérer les sauvegardes, les contrôles d’hôte ou l’arrêt des machines hors production en dehors des heures de travail.

Boîte de dialogue de planification Semaphore UI avec une expression cron quotidienne, un modèle de tâche et la prochaine exécution.
Semaphore UI. Une planification cron avec des entrées de tâches et un aperçu de la prochaine exécution.
Formulaire de planification AWX avec une récurrence quotidienne, un fuseau horaire, des conditions de fin et des exceptions.
AWX. Un planning avec fuseau horaire, récurrence, conditions de fin et exceptions.

Inventaire

Les deux produits peuvent utiliser des fichiers statiques et une découverte dynamique. La principale différence est de savoir si les hôtes découverts deviennent des enregistrements gérés par la plateforme ou sont résolus par Ansible lors de l'exécution d'une tâche.

Pris en chargePartiellement pris en chargeNon pris en charge
Inventaire: AWX et Semaphore UI
Critères Semaphore UI AWX
Inventaires statiques OuiÉditeur et fichiers INI/YAML OuiEnregistrements d'hôte/groupe et fichiers importés
Inventaires dans Git OuiDépôt d'inventaire identique ou distinct OuiSources du projet SCM
Inventaires dynamiques OuiPlugins Ansible et scripts exécutables OuiPlugins, scripts et sources gérées
Actualisation des inventaires PartielDécouverte lors de l'exécution OuiMises à jour programmées et mise à jour au lancement
Groupes d’inventaire calculés OuiPlugin Ansible constructed OuiInventaires construits gérés
Cache de facts géré NonConfigurer la mise en cache Ansible séparément OuiFacts des hôtes conservés par AWX
Modification des hôtes et des groupes PartielModifier les définitions INI/YAML OuiContrôles individuels des hôtes et des groupes

AWX conserve les enregistrements des hôtes et des groupes et les actualise via des tâches de mise à jour d'inventaire, à l'aide de fichiers statiques, de plugins d'inventaire Ansible ou de scripts exécutables. Semaphore UI permet aux équipes de modifier les inventaires INI/YAML ou de les charger à partir de Git, y compris un dépôt distinct. Les plugins et les scripts découvrent les hôtes lors de l'exécution. La principale distinction est de savoir si la plateforme gère un cycle de vie d’inventaire ou réutilise la configuration Ansible de l’équipe.

Éditeur d’inventaire Ansible de Semaphore UI avec deux hôtes Web de staging définis dans un inventaire YAML statique.
Semaphore UI. Un inventaire YAML statique avec des groupes d'hôtes et des variables de connexion.
Inventaire AWX montrant les hôtes de staging, leur groupe Web et les commandes d’activation par hôte.
AWX. Enregistrements d'hôtes individuels avec appartenance à un groupe et contrôles par hôte.

Par exemple, le plugin netbox.netbox.nb_inventory découvre les appareils et les machines virtuelles, filtre les cibles et crée des groupes à partir des données NetBox. NetBox reste la source de vérité. AWX ajoute des contrôles de mise à jour et des enregistrements stockés, tandis que Semaphore UI transmet la configuration à Ansible. Les deux utilisent le plugin Ansible plutôt qu’un connecteur NetBox natif distinct. D'autres sources incluent AWS, Azure et Google Cloud, et Semaphore UI documente un script Python hébergé par Git pour Consul.

Les inventaires construits d’AWX combinent des inventaires d’entrée enregistrés et gèrent les hôtes obtenus. Semaphore UI peut utiliser le plugin Ansible constructed pour créer des groupes et des variables à partir des sources précédentes. Les plugins de cache Ansible peuvent conserver les facts, mais Semaphore UI ne fournit pas le cache de facts géré d’AWX. Le stockage, l’expiration et le partage du cache entre runners restent à configurer dans Ansible.

Semaphore UI prévoit d’ajouter des rapports Ansible inspirés d’ARA dans la version 2.21.0. Ils compléteront les fonctions d’inventaire par une vue de chaque hôte et de son historique d’automatisation. Les opérateurs pourront ainsi voir quelles tâches ont été exécutées sur chaque serveur, à quel moment et où des échecs se sont produits.

Choisissez le modèle d'inventaire d’AWX lorsque les opérateurs doivent parcourir, actualiser et gérer les enregistrements d'hôtes sur la plateforme. Semaphore UI correspond à une configuration dans laquelle Git définit l'inventaire ou Ansible découvre des hôtes à partir de systèmes tels que NetBox et les API cloud au moment de l'exécution.

Secrets

Les tâches enregistrées ont besoin d’identifiants sans que les opérateurs aient à saisir des mots de passe ou des tokens cloud à chaque lancement. Les possibilités de stockage et de récupération déterminent comment ces identifiants parviennent à la tâche.

Pris en chargePartiellement pris en chargeNon pris en charge
Secrets: AWX et Semaphore UI
Critères Semaphore UI AWX
Stockage des identifiants Oui Oui
HashiCorp Vault OuiPro Oui
OpenBao OuiPro NonPas d'intégration intégrée, la compatibilité Vault doit être testée
AWS Secrets Manager OuiEnterprise Oui
Azure Key Vault OuiEnterprise Oui
Devolutions Server OuiEnterprise NonPas d'intégration intégrée, connexion personnalisée possible

Les objets d'identification AWX et le Key Store de Semaphore UI fournissent des identifiants pour les tâches enregistrées sans qu'il soit nécessaire qu'un opérateur les colle à chaque lancement. Les deux s'intègrent à HashiCorp Vault, AWS Secrets Manager et Azure Key Vault, afin que les équipes puissent continuer à utiliser ces services existants.

Formulaire de stockage Vault dans Semaphore UI, avec l’URL du serveur, le mount, le namespace et les options de source du token.
Semaphore UI. Paramètres de connexion Vault, mount et source du token.
AWX HashiCorp Vault Formulaire d'identification de recherche secrète affichant les champs de connexion et d'authentification.
AWX. Champs de connexion et d’authentification de recherche de coffre-fort. D'autres paramètres se poursuivent sous la fenêtre.

D'autres intégrations distinguent les produits. AWX propose des types d'identifiants CyberArk Central Credential Provider, CyberArk Conjur et personnalisés. Semaphore UI fournit des intégrations dédiées OpenBao et Devolutions Server. La recherche Vault d’AWX peut fonctionner avec un service compatible, mais la compatibilité d’OpenBao doit être vérifiée pour l'opération requise.

Comparez l'intégration du coffre-fort que votre équipe utilise déjà, y compris sa méthode d'authentification et les types de secrets dont vos tâches ont besoin. Les services sans intégration intégrée peuvent nécessiter un code de récupération personnalisé.

Exécution

Une tâche nécessite une capacité d’exécution capable d’atteindre les systèmes cibles. Les agents distants répondent au besoin de placement réseau, et les images de conteneurs à celui des dépendances d’exécution.

Pris en chargePartiellement pris en chargeNon pris en charge
Exécution: AWX et Semaphore UI
Critères Semaphore UI AWX
Exécution à distance Oui Oui
Capacité d’exécution dédiée OuiProRunners de projet OuiGroupes d'instances affectés aux ressources
Routage d'exécution OuiProTags de runner sur les modèles ou les inventaires OuiGroupes d'instances affectés aux ressources
Rôles et collections Ansible OuiInstallation depuis requirements.yml OuiInstallation lors de la synchronisation du projet
Tâches conteneurisées OuiProExécuteur Docker OuiImages d’environnement d’exécution Ansible
Pods de tâches Kubernetes OuiEnterprise Oui
Contrôle de la concurrence OuiLimites des modèles, des projets et des instances OuiTâches simultanées et capacité des groupes d’instances

AWX envoie le travail aux nœuds d'exécution, regroupés en groupes d'instances pouvant être attribués à des organisations, des inventaires ou des modèles. Semaphore UI exécute des tâches sur son serveur ou les envoie aux runners. Dans les deux modèles, les machines d'exécution peuvent être placées à proximité des systèmes cibles tandis que l'interface Web reste centralisée.

Un runner Semaphore UI dans un réseau privé peut appliquer des correctifs ou renouveler des certificats sans connexion directe du serveur Web aux hôtes. Les runners de projet réservent de la capacité à un projet, tandis que les tags des modèles ou inventaires dirigent les tâches vers les runners correspondants. Cela convient aux sites distribués et aux environnements clients. Les tags de routage sélectionnent les machines, mais ne garantissent pas l’isolation des réseaux ou des comptes cloud.

L’environnement d’exécution détermine ce qui peut fonctionner sur ces machines. AWX utilise des images d’environnement d’exécution contenant Ansible et ses dépendances, et les groupes de conteneurs peuvent créer un pod Kubernetes par tâche. Semaphore UI propose l’exécution de chaque tâche dans Docker avec Pro et dans Kubernetes avec Enterprise. Ces options sont distinctes de l’hébergement du service Web dans un conteneur. Les deux produits peuvent installer les rôles et collections Ansible déclarés dans le dépôt. Les autres bibliothèques et outils doivent être présents sur la machine d’exécution ou dans son image.

Les contrôles de concurrence limitent le travail simultané. AWX combine les paramètres de tâches simultanées avec la capacité d'exécution et les limites des groupes d'instances. Semaphore UI applique les limites des instances, des projets et des modèles.

AWX peut également diviser automatiquement un grand inventaire en tâches parallèles. Semaphore UI peut diviser le travail en exécutions distinctes avec les limites d'hôtes Ansible, avec des balises d'exécution sélectionnant les machines d'exécution. L’équipe maintient ces sous-ensembles et lancements. Pour les mises à jour progressives, le paramètre serial d’Ansible contrôle les lots séquentiels. Ceux-ci couvrent des exécutions ciblées et des déploiements par étapes, tandis que le découpage des tâches d’AWX répartit automatiquement le travail pour des opérations parallèles sur l’ensemble du parc.

Workflows

Provisioning peut nécessiter un plan, une approbation, un déploiement et une configuration d'hôte, avec différents chemins après le succès ou l'échec. La composition du workflow détermine la façon dont ces étapes se connectent.

Pris en chargePartiellement pris en chargeNon pris en charge
Workflows: AWX et Semaphore UI
Critères Semaphore UI AWX
Éditeur visuel de workflows Oui Oui
Plusieurs nœuds de départ Non Oui
Jonctions de branches Oui Oui
Workflows sous forme d'étapes Non Oui
Branches de réussite et d’échec Oui Oui
Étapes d'approbation Oui Oui
Rôle d'approbateur distinct NonAnnoncé pour la version 2.21 Oui
Transmission de valeurs entre tâches Oui Oui

Les workflows AWX relient les modèles de tâches Ansible entre eux. Les autres outils sont appelés via des playbooks. Semaphore UI connecte directement les modèles Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell et Python. Les deux prennent en charge les branches de réussite/échec et les approbations, de sorte qu'un processus de provisionnement peut s'interrompre avant un changement de production.

Les deux utilisent des graphes sans boucle. Aux jonctions, ils permettent d’exiger que les conditions de tous les prédécesseurs ou d’un seul d’entre eux soient satisfaites. AWX accepte plusieurs nœuds de départ. Semaphore UI démarre à partir d’un seul nœud et propose des nœuds de tâche, d’approbation, de délai et d’annotation.

AWX peut réutiliser l’intégralité d’un workflow dans un autre, conservant ainsi une procédure partagée en plusieurs étapes au même endroit. Il empêche l'exécution récursive et propose des étapes de mise à jour du dépôt et de l'inventaire. Semaphore UI réutilise des modèles de tâches individuels dans les workflows, mais ne peut pas intégrer un workflow en tant qu'étape. La différence est importante lorsque plusieurs déploiements partagent une procédure plutôt qu'une seule tâche.

Éditeur de workflows Semaphore UI avec une étape de planification, une approbation, un déploiement et des branches de réussite et d'échec distinctes.
Semaphore UI. Un workflow de déploiement avec approbation et chemins de réussite et d'échec séparés.
Vue complète du Workflow Visualizer d’AWX avec un plan, une approbation, un déploiement, une vérification de version imbriquée et une branche de récupération.
AWX. Approbation avant déploiement, workflow de vérification imbriqué et branche de récupération après échec.

AWX dispose d’un rôle d’approbateur attribuable séparément. Les administrateurs peuvent également approuver. Dans Semaphore UI 2.20, l’approbation dépend du droit d’exécuter les tâches du projet. La distinction est importante si l’équipe doit attribuer l’approbation indépendamment de l’exécution. Un rôle d’approbateur distinct est annoncé pour Semaphore UI 2.21 et n’entre pas dans ce comparatif.

Les deux permettent les approbations dans l’interface et via une API authentifiée. AWX fournit aussi un module Ansible. Une approbation interactive dans Slack nécessite une intégration appelant l’API, une simple notification ne suffit pas.

Les deux transmettent des valeurs aux tâches suivantes, comme l’adresse d’un hôte nouvellement provisionné. AWX expose les valeurs définies par set_stats dans le playbook sous forme de variables supplémentaires pour les tâches en aval, y compris sur les nœuds d’exécution. Un playbook peut ainsi récupérer le résultat d’un autre outil. Semaphore UI collecte les valeurs Ansible set_stats, les outputs de Terraform/OpenTofu/Terragrunt et le JSON produit par Bash, PowerShell ou Python. Il associe ensuite ces valeurs aux variables du questionnaire de destination, par correspondance de nom ou par association explicite.

Dans Semaphore UI 2.20, les sorties de workflow sont collectées sur le serveur et les runners distants utilisant l’exécuteur local. Les exécuteurs Docker et Kubernetes ne produisent pas encore de sorties de workflow. Les valeurs sont collectées après les tâches réussies. Les branches déclenchées en cas d’échec ne peuvent donc pas dépendre des sorties d’une tâche ayant échoué. Ces valeurs sont visibles par les utilisateurs autorisés à consulter la tâche et ne doivent pas contenir de secrets.

La transmission de valeurs ne transfère de fichiers dans aucun des deux produits. Si des étapes distinctes échangent un plan Terraform enregistré ou un autre artefact, prévoyez un stockage accessible aux deux. Réutiliser un runner ne garantit pas la conservation du répertoire de travail entre les tâches.

Contrôle d’accès

Le personnel d'assistance devra peut-être redémarrer un service approuvé sans connexion au serveur à usage général. La délégation doit contraindre à la fois l’opération et ses objectifs.

Pris en chargePartiellement pris en chargeNon pris en charge
Contrôle d’accès: AWX et Semaphore UI
Critères Semaphore UI AWX
Contrôle d'accès basé sur les rôles OuiRôles de projet, rôles personnalisés dans Enterprise OuiRôles dans l’organisation, l’équipe et les ressources
Autorisations indépendantes pour les inventaires et les identifiants NonL'accès aux ressources suit les rôles du projet Oui
Autorisations d'exécution au niveau du modèle OuiEnterprise Oui
LDAP et OIDC OuiPro Oui
Authentification unique SAML NonOIDC disponible Oui
Authentification à deux facteurs OuiProTOTP local OuiVia un fournisseur d'identité externe

AWX accorde des autorisations indépendamment sur les inventaires, les identifiants et les modèles de tâches. Semaphore UI organise l'accès autour des projets, avec des rôles personnalisés Enterprise et des autorisations d'exécution au niveau du modèle pour une délégation plus fine. Un modèle préconfiguré peut exposer une opération approuvée à l'aide de l'inventaire, des identifiants et des paramètres d'exécution choisis.

Par exemple, Semaphore UI Enterprise peut donner au support accès à un modèle de redémarrage de service sur des serveurs de production déterminés. Un rôle de base Guest, associé à un rôle personnalisé sans autorisations à l’échelle du projet, peut accorder l’exécution de ce modèle. Limitez les possibilités de remplacer l’inventaire, les limites d’hôtes, les variables et les autres paramètres au lancement. Vérifiez aussi que d’autres rôles n’élargissent pas l’accès. Le modèle, les autorisations et l’automatisation définissent ensemble l’opération permise. Le questionnaire ne fait que recueillir les paramètres.

Cela permet de déléguer des opérations précises sans créer d’autorisations indépendantes sur les inventaires ou les identifiants au sein d’un projet. AWX convient davantage lorsque les opérateurs doivent combiner des ressources soumises à des règles d’accès distinctes. Les autorisations par modèle de Semaphore UI conviennent à un ensemble défini de procédures approuvées.

Les deux prennent en charge LDAP et OIDC pour la connexion. AWX prend également en charge SAML et s'appuie sur un fournisseur d'identité externe pour MFA. Semaphore UI offre une authentification locale à deux facteurs TOTP. Un fournisseur d'identité avec OIDC peut couvrir la connexion centralisée à Semaphore UI, tandis qu'une exigence uniquement SAML nécessite une autre approche d'intégration.

Journaux et audit

Le résultat de la tâche explique les échecs d’exécution. L'historique d'audit enregistre les personnes qui ont lancé une opération ou modifié sa configuration, avec différentes exigences de visibilité et de conservation.

Pris en chargePartiellement pris en chargeNon pris en charge
Journaux et audit: AWX et Semaphore UI
Critères Semaphore UI AWX
Historique des tâches et journaux Oui Oui
Conservation de l'historique des tâches OuiConserver les tâches récentes par modèle OuiNettoyage planifié selon l’ancienneté
Historique des audits inter-projets OuiJournal d’audit accessible aux administrateurs, enregistrement à activer OuiFlux d'activité, visibilité basée sur les rôles
Transfert SIEM OuiProTLS Syslog et Splunk HEC OuiJournalisation externe, y compris Splunk

Les deux produits conservent l'historique des tâches et les résultats à des fins de dépannage. La visibilité de l'audit diffère : le flux d'activité d’AWX suit les autorisations de ressources et les rôles d'administrateur ou d'auditeur. La vue d'audit inter-projets de Semaphore UI est disponible pour les administrateurs, avec des événements stockés dans sa base de données lorsque l'enregistrement d'audit est activé.

Pour les investigations centralisées, la journalisation externe d’AWX transmet les événements d’activité, les journaux de tâches et les journaux serveur, notamment vers Splunk. Semaphore UI Pro ajoute des filtres d’audit, l’export en CSV ou JSONL et le transfert via TLS Syslog ou Splunk HEC. Les deux peuvent alimenter une plateforme de journalisation ou un système de gestion des informations et des événements de sécurité (SIEM).

La rétention locale utilise différents contrôles. AWX fournit un nettoyage planifié basé sur l'âge pour l'historique d'exécution et le flux d'activité. Semaphore UI conserve un nombre configuré de tâches récentes par modèle. Un système de journalisation central peut conserver les enregistrements au-delà de ces limites locales.

Intégrations

Les modifications du dépôt et les demandes du portail de services peuvent déclencher l'automatisation. Les API, les webhooks et les notifications relient ces événements aux tâches et à leurs résultats.

Pris en chargePartiellement pris en chargeNon pris en charge
Intégrations: AWX et Semaphore UI
Critères Semaphore UI AWX
REST API Oui Oui
Webhooks de tâches OuiPoints de terminaison génériques, matchers, extraction de valeur OuiWebhooks GitHub et GitLab
Notifications de tâches Oui Oui

AWX fournit des webhooks de tâches intégrés pour GitHub et GitLab afin de déclencher l’automatisation depuis les dépôts. Semaphore UI propose des points de terminaison webhook génériques qui filtrent les requêtes selon des règles et en extraient les paramètres des tâches. Ils peuvent recevoir des événements de différents systèmes, tandis que les API REST des deux produits permettent l’accès à d’autres clients.

Pour les notifications sortantes, AWX propose l’e-mail, Slack, Rocket.Chat, Mattermost, PagerDuty, AWS SNS, Grafana, IRC, Twilio et les webhooks. Semaphore UI prend en charge l’e-mail (SMTP), Telegram, Slack, Microsoft Teams, Rocket.Chat, DingTalk et Gotify. Ces canaux transmettent les événements des tâches à des personnes ou à des services, tandis que les webhooks entrants de tâches déclenchent l’automatisation.

Un portail de services ou un système ITSM peut utiliser l’API REST de l’un ou l’autre produit pour lancer une tâche préparée et récupérer son résultat. Par exemple, un portail interne peut soumettre une demande de renouvellement de certificat à un modèle enregistré, puis informer le demandeur de son achèvement. Il s’agit d’une intégration par API configurée par l’équipe, et non d’un connecteur natif dédié.

Automatisation assistée par l’IA

Les deux plateformes fournissent des ressources utiles aux assistants de programmation comme Claude Code et Codex : documentation publique, code source ouvert et API documentées. Un assistant peut consulter des exemples de configuration, examiner l’implémentation d’un paramètre et utiliser les définitions d’API pour proposer du code d’intégration. Avec la configuration concernée et la sortie de la tâche, il peut aussi aider à analyser les échecs. Il est ainsi possible de configurer la plateforme et de résoudre des problèmes avec l’aide de l’IA, sans fonction d’IA dédiée intégrée au produit.

Des connecteurs MCP communautaires sont disponibles pour AWX et Semaphore UI. Selon le connecteur, ils permettent aux assistants de rechercher des modèles, de lancer des tâches ou de récupérer des résultats dans la plateforme. Une équipe peut ainsi utiliser ses automatisations préparées par l’intermédiaire d’un assistant, tout en conservant la définition et l’exécution des tâches dans la plateforme.

Semaphore UI a annoncé une prise en charge officielle de MCP pour Pro dans la version 2.21.0.

Licences et support

AWX et Semaphore UI proposent tous deux des logiciels open source gratuits. La principale différence réside dans la manière dont les équipes peuvent obtenir des capacités commerciales, le support des fournisseurs et des engagements contractuels à mesure que l'automatisation devient plus importante pour leurs opérations.

Options open source et commerciales

AWX est distribué sous licence Apache 2.0 et bénéficie du support de sa communauté. Il est également un projet amont du composant automation controller de Red Hat Ansible Automation Platform (AAP). Red Hat ne vend pas d’abonnement de support pour AWX lui-même. Son offre avec support commercial est AAP, une plateforme d’entreprise distincte qui associe automation controller à d’autres composants, à du contenu certifié et à un cycle de vie produit défini.

Semaphore UI suit un modèle open-core. Community est gratuit et distribué sous licence MIT, tandis que Pro et Enterprise ajoutent des fonctionnalités commerciales et le support de l’éditeur au sein de la même famille de produits. Pro s’adresse aux petites équipes d’ingénierie qui intègrent l’automatisation à leurs opérations quotidiennes. Enterprise répond à des exigences plus élevées en matière d’accès, d’exécution, de disponibilité et de support.

Les offres commerciales répondent donc à des besoins d'achat différents. AAP est un investissement plus large dans une plateforme d'entreprise. Les plans commerciaux Semaphore UI s'adressent aux équipes d'ingénierie et aux organisations de taille moyenne, avec une option Enterprise pour les environnements complexes ou critiques pour l'entreprise. Les équipes peuvent bénéficier de contrôles avancés et de l’assistance d’un fournisseur tout en gardant leur investissement concentré sur le service d’automatisation dont elles ont besoin.

Support et engagements contractuels

Les utilisateurs d’AWX peuvent poser des questions, signaler des bugs et proposer des correctifs via les canaux communautaires. Cette assistance n’engage pas un éditeur à répondre dans un délai donné ou à prendre en charge un incident. Un abonnement AAP donne accès au support Red Hat pour AAP, mais ne couvre pas une installation AWX existante.

Semaphore UI Community propose également une assistance au mieux des possibilités, sans SLA de support. Pro inclut le support de l’éditeur pendant les heures ouvrées. Enterprise propose des SLA adaptés et une assistance pour la prise en main, la configuration, les mises à niveau et la migration. Les clients commerciaux disposent donc d’une relation directe avec l’éditeur, dont les obligations de support sont définies par l’offre et le contrat applicables.

Planification des versions et de la maintenance

AWX indique actuellement que les versions sont suspendues lors d'une refactorisation à grande échelle. Semaphore UI continue de publier des versions et maintient une politique de sécurité identifiant les versions prises en charge. Ces différences sont importantes lors de la planification des mises à niveau et de la maintenance continue. Consultez l'historique des versions, les politiques de sécurité et les instructions de mise à niveau pour la version que vous souhaitez utiliser, parallèlement à tout engagement de support contractuel.

Comment choisir

Les deux plates-formes permettent aux équipes de partager l'automatisation, de planifier des tâches et d'examiner les résultats. Choisissez en fonction de la manière dont vous gérez les informations sur l'hôte, déléguez les opérations, hébergez le service et obtenez de l'assistance.

Quand choisir AWX

AWX convient bien lorsqu’Ansible est au cœur de votre automatisation et que son modèle de gestion des ressources correspond à vos opérations quotidiennes.

  • La gestion des inventaires dans la plateforme est une exigence essentielle. Vos opérateurs utilisent la plateforme au quotidien pour tenir à jour les hôtes et les groupes, actualiser les inventaires et conserver les facts des hôtes.
  • Les inventaires et les identifiants nécessitent leurs propres règles d'accès. Votre équipe doit attribuer des autorisations aux inventaires et identifiants individuels indépendamment des modèles de tâches, permettant ainsi aux opérateurs de combiner uniquement les ressources qu'ils sont autorisés à utiliser.
  • Kubernetes s’adapte à votre infrastructure existante. Votre équipe exploite déjà un cluster, le modèle de déploiement recommandé par AWX correspond donc aux systèmes et aux compétences que vous gérez.
  • Ansible orchestre déjà vos procédures. Vos playbooks couvrent les opérations requises, y compris les appels à d'autres outils, et les environnements d'exécution Ansible fournissent leurs dépendances.
  • Le support communautaire répond à vos besoins. Votre équipe possède les compétences et les ressources nécessaires pour analyser les incidents, évaluer les avis de sécurité et maintenir l’installation sans SLA de réponse d’un éditeur.

Quand choisir Semaphore UI

Semaphore UI convient bien si vous recherchez un service simple pour exécuter et partager l’automatisation avec vos outils et votre infrastructure existants.

  • Vos inventaires résident déjà dans Git ou dans des systèmes externes. Vous souhaitez réutiliser les définitions d'inventaire Ansible et les plug-ins qui découvrent les hôtes de NetBox, des API cloud ou d'autres sources lors de l'exécution de tâches.
  • Les collègues doivent avoir accès à des opérations préparées. Les ingénieurs définissent des tâches telles que les déploiements, les redémarrages de services ou les renouvellements de certificats. Les autres membres de l'équipe lancent ces tâches avec les entrées requises, tandis que les inventaires et les identifiants font toujours partie de la configuration préparée.
  • Vous souhaitez déployer sans Kubernetes. Les installations binaires, de packages natifs et Docker vous permettent d'utiliser un serveur existant, évitant ainsi un cluster introduit uniquement pour le service d'automatisation.
  • Votre automatisation s'étend sur plusieurs outils. Les modèles dédiés exécutent directement Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell et Python, avec des workflows connectant leurs opérations.
  • Vous souhaitez un chemin direct vers un support commercial. Les licences commerciales ajoutent le support du fournisseur et des fonctionnalités avancées au sein de la même famille de produits, afin que vous puissiez obtenir des engagements de support tout en continuant à utiliser Semaphore UI.

FAQ

Semaphore UI peut-il remplacer AWX ?

Oui, lorsque son modèle d'inventaire, d'autorisations et de workflow couvre vos besoins. Les playbooks existants peuvent souvent être réutilisés, tandis que la configuration des tâches et les contrôles d'accès doivent être cartographiés et testés. Vérifiez toutes les dépendances sur les fonctionnalités spécifiques à AWX, en particulier les workflows imbriqués, les autorisations d'inventaire ou d'identifiants indépendantes et la mise en cache des faits gérée.

Puis-je réutiliser mes playbooks Ansible existants ?

Repartez du même dépôt et des mêmes playbooks. Configurez l’inventaire, les identifiants, les variables, les collections et les dépendances d’exécution nécessaires dans Semaphore UI, puis testez des exécutions représentatives. Réutiliser le code n’importe pas automatiquement tous les paramètres d’AWX.

Que faut-il vérifier lors de la migration depuis AWX ?

Commencez avec un workflow représentatif. Réutilisez ses playbooks dans la mesure du possible, puis mappez les inventaires, les identifiants, les variables, les questionnaires de lancement, les calendriers et les dépendances d'exécution. Vérifiez séparément les autorisations, les approbations, les workflows imbriqués et le transfert de valeurs ou de fichiers. Une importation peut réduire le travail de configuration, mais cela ne prouve pas que le travail importé se comporte de la même manière. Testez avant d’activer les calendriers de production.

Quelles fonctionnalités de Semaphore UI nécessitent une édition payante ?

Community couvre l’interface de base pour les tâches et les workflows. Les runners de projet, l’exécution dans Docker et les intégrations de coffres-forts externes sont disponibles à partir de Pro. Les rôles personnalisés, les autorisations par modèle, l’exécution de tâches dans Kubernetes et la haute disponibilité nécessitent Enterprise. Pour évaluer une offre, vérifiez les fonctionnalités et la capacité nécessaires.

Puis-je conserver l’authentification unique SAML après la migration ?

AWX prend directement en charge SAML. Semaphore UI prend en charge LDAP et OIDC, mais n'a pas d'intégration native SAML. Un fournisseur d'identité qui propose également OIDC peut couvrir les exigences de connexion. Vérifiez le mappage des utilisateurs et des groupes séparément, car la modification du protocole d'authentification ne recrée pas les autorisations AWX.

Semaphore UI nécessite-t-il Kubernetes ?

Non. Les installations binaires, packages et Docker sont disponibles. Kubernetes est un choix de déploiement facultatif. Des outils d'automatisation et une base de données adaptée font toujours partie de l'environnement.

AWX peut-il exécuter Terraform ou utiliser HashiCorp Vault ?

Oui. Les playbooks peuvent exécuter des commandes Terraform ou des modules de collections, et AWX permet de récupérer des identifiants dans HashiCorp Vault. Semaphore UI propose un autre modèle de configuration avec des modèles Terraform/OpenTofu dédiés et un backend HTTP de state disponible en option avec Pro.

L’une ou l’autre plate-forme prend-elle en charge l’exécution à distance ?

Les deux peuvent exécuter des tâches sur des serveurs distants. AWX utilise des nœuds d'exécution regroupés pour différentes équipes et charges de travail. Semaphore UI utilise des agents d'exécution. Leurs modèles de configuration et d’accès diffèrent.

Cet article vous a-t-il été utile ?

Sources

  1. ARA Records Ansible, “ARA Records Ansible”. URL: https://ara.recordsansible.org/ (consulté le: ).
  2. Semaphore UI, “Semaphore runner output capture and executor limits”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/runners/job_pool.go#L167-L192 (consulté le: ).
  3. Semaphore UI, “Semaphore task dispatch, runner routing, concurrency and remote workflow outputs”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/TaskPool.go (consulté le: ).
  4. Semaphore UI, “Semaphore workflow input mapping model”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Workflow.go#L27-L44 (consulté le: ).
  5. Semaphore UI, “Semaphore task template options and survey field types”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Template.go (consulté le: ).
  6. Semaphore UI, “Semaphore NetBox dynamic inventory example”. URL: https://semaphoreui.com/docs/user-guide/inventory/netbox-dynamic-inventory (consulté le: ).
  7. Semaphore UI, “Semaphore Consul inventory script”. URL: https://semaphoreui.com/docs/user-guide/inventory/consul-dynamic-inventory (consulté le: ).
  8. Ansible community, “NetBox Ansible inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/netbox/netbox/nb_inventory_inventory.html (consulté le: ).
  9. Ansible community, “AWS EC2 Ansible inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/amazon/aws/aws_ec2_inventory.html (consulté le: ).
  10. Ansible community, “Azure Ansible inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/azure/azcollection/azure_rm_inventory.html (consulté le: ).
  11. Ansible community, “Google Cloud Ansible inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/google/cloud/gcp_compute_inventory.html (consulté le: ).
  12. Semaphore UI, “Semaphore cloning of inventory repositories”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/local_executor_inventory.go (consulté le: ).
  13. Semaphore UI, “Semaphore local execution, workflow outputs, inventory paths, host limits and branch overrides”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/local_executor.go (consulté le: ).
  14. Semaphore UI, “Semaphore survey field types”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/web/src/components/SurveyVars.vue (consulté le: ).
  15. Semaphore UI, “Semaphore survey inputs and task launch form”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/web/src/components/TaskForm.vue (consulté le: ).
  16. Semaphore UI, “What is Semaphore UI?”. URL: https://semaphoreui.com/docs/introduction/what-is-semaphore (consulté le: ).
  17. AWX project, “AWX user guide”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/index.html (consulté le: ).
  18. Semaphore UI, “Semaphore source and MIT license”. URL: https://github.com/semaphoreui/semaphore (consulté le: ).
  19. AWX project, “AWX source and Apache 2.0 license”. URL: https://github.com/ansible/awx (consulté le: ).
  20. Semaphore UI, “Semaphore setup and first run”. URL: https://semaphoreui.com/docs/getting-started (consulté le: ).
  21. Semaphore UI, “Semaphore installation methods and dependencies”. URL: https://semaphoreui.com/docs/admin-guide/installation (consulté le: ).
  22. AWX project, “AWX installation paths”. URL: https://github.com/ansible/awx/blob/24.6.1/INSTALL.md (consulté le: ).
  23. AWX project, “AWX Operator installation”. URL: https://docs.ansible.com/projects/awx-operator/en/latest/installation/basic-install.html (consulté le: ).
  24. Semaphore UI, “Semaphore high availability prerequisites”. URL: https://semaphoreui.com/docs/admin-guide/ha#prerequisites (consulté le: ).
  25. AWX project, “AWX web and task replica scaling”. URL: https://docs.ansible.com/projects/awx-operator/en/latest/user-guide/advanced-configuration/scaling-the-web-and-task-pods-independently.html (consulté le: ).
  26. Semaphore UI, “Semaphore automation applications”. URL: https://semaphoreui.com/docs/user-guide/apps (consulté le: ).
  27. Semaphore UI, “Semaphore task templates”. URL: https://semaphoreui.com/docs/user-guide/task-templates (consulté le: ).
  28. AWX project, “AWX job templates and surveys”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/job_templates.html (consulté le: ).
  29. Semaphore UI, “Survey variables”. URL: https://semaphoreui.com/docs/user-guide/task-templates/survey-vars (consulté le: ).
  30. Semaphore UI, “Terraform and OpenTofu in Semaphore”. URL: https://semaphoreui.com/docs/user-guide/apps/terraform (consulté le: ).
  31. Ansible community, “Ansible Terraform module”. URL: https://docs.ansible.com/projects/ansible/latest/collections/community/general/terraform_module.html (consulté le: ).
  32. Semaphore UI, “Semaphore Terraform HTTP backend”. URL: https://semaphoreui.com/docs/user-guide/apps/terraform/states (consulté le: ).
  33. Semaphore UI, “Semaphore workflow nodes and approvals”. URL: https://semaphoreui.com/docs/user-guide/workflows (consulté le: ).
  34. Semaphore UI, “Semaphore inventory types and stored resources”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Inventory.go (consulté le: ).
  35. AWX project, “AWX job slicing”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/job_slices.html (consulté le: ).
  36. Semaphore UI, “Semaphore workflow approval API routes”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/api/router.go (consulté le: ).
  37. AWX project, “AWX resource, workflow approval and activity-stream access control”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/access.py (consulté le: ).
  38. AWX project, “AWX workflow approval Ansible module”. URL: https://github.com/ansible/awx/blob/24.6.1/awx_collection/plugins/modules/workflow_approval.py (consulté le: ).
  39. AWX project, “AWX workflow branch convergence”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/scheduler/dag_workflow.py#L51-L112 (consulté le: ).
  40. AWX project, “AWX Terraform State inventory source”. URL: https://github.com/ansible/awx/blob/24.6.1/docs/docsite/rst/userguide/inventories.rst#L1092-L1121 (consulté le: ).
  41. AWX project, “AWX instance-group capacity limits”. URL: https://github.com/ansible/awx/blob/24.6.1/docs/docsite/rst/administration/containers_instance_groups.rst#L247-L263 (consulté le: ).
  42. AWX project, “AWX custom credential types”. URL: https://github.com/ansible/awx/blob/24.6.1/docs/credentials/custom_credential_types.md (consulté le: ).
  43. AWX project, “AWX workflows”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/workflow_templates.html (consulté le: ).
  44. AWX project, “AWX workflow branching and output variables”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/workflows.html (consulté le: ).
  45. AWX project, “AWX collection of Ansible workflow variables”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/tasks/callback.py#L156-L160 (consulté le: ).
  46. AWX project, “AWX processing of execution-node events”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/tasks/receptor.py#L544-L553 (consulté le: ).
  47. AWX project, “AWX inheritance of variables between workflow jobs”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/models/workflow.py#L324-L354 (consulté le: ).
  48. Semaphore UI, “Semaphore global runners”. URL: https://semaphoreui.com/docs/admin-guide/runners/ (consulté le: ).
  49. Semaphore UI, “Semaphore project runners”. URL: https://semaphoreui.com/docs/user-guide/projects/runners (consulté le: ).
  50. AWX project, “AWX execution and hop nodes”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/instances.html (consulté le: ).
  51. AWX project, “AWX execution environments”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/execution_environments.html (consulté le: ).
  52. AWX project, “AWX Kubernetes container groups”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/containers_instance_groups.html (consulté le: ).
  53. Semaphore UI, “Semaphore inventories”. URL: https://semaphoreui.com/docs/user-guide/inventory (consulté le: ).
  54. AWX project, “AWX inventories”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/inventories.html (consulté le: ).
  55. Semaphore UI, “Semaphore project access”. URL: https://semaphoreui.com/docs/user-guide/projects (consulté le: ).
  56. Semaphore UI, “Semaphore team roles and template-level permissions”. URL: https://semaphoreui.com/docs/user-guide/team#extended-rbac (consulté le: ).
  57. AWX project, “AWX role-based access controls”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/rbac.html (consulté le: ).
  58. Semaphore UI, “Semaphore LDAP and OIDC authentication”. URL: https://semaphoreui.com/docs/admin-guide/authentication (consulté le: ).
  59. AWX project, “AWX LDAP, OIDC and SAML authentication”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/ent_auth.html (consulté le: ).
  60. Semaphore UI, “Semaphore Key Store”. URL: https://semaphoreui.com/docs/user-guide/key-store (consulté le: ).
  61. AWX project, “AWX credentials and secret lookups”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/credentials.html (consulté le: ).
  62. AWX project, “AWX external secret management integrations”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/credential_plugins.html (consulté le: ).
  63. Semaphore UI, “Semaphore OpenBao secret storage”. URL: https://semaphoreui.com/docs/user-guide/key-store/openbao (consulté le: ).
  64. Semaphore UI, “Semaphore Devolutions Server secret storage”. URL: https://semaphoreui.com/docs/user-guide/key-store/devolutions-server (consulté le: ).
  65. Semaphore UI, “Semaphore webhook integrations”. URL: https://semaphoreui.com/docs/user-guide/integrations (consulté le: ).
  66. AWX project, “AWX webhooks”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/webhooks.html (consulté le: ).
  67. Semaphore UI, “Semaphore REST API”. URL: https://semaphoreui.com/api-docs (consulté le: ).
  68. Ansible community, “Ansible command execution”. URL: https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/command_module.html (consulté le: ).
  69. Ansible community, “Ansible PowerShell module”. URL: https://docs.ansible.com/projects/ansible/latest/collections/ansible/windows/win_powershell_module.html (consulté le: ).
  70. Semaphore UI, “Semaphore notification channels”. URL: https://semaphoreui.com/docs/admin-guide/notifications (consulté le: ).
  71. AWX project, “AWX notifications”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/notifications.html (consulté le: ).
  72. Semaphore UI, “Semaphore task history and output”. URL: https://semaphoreui.com/docs/user-guide/tasks (consulté le: ).
  73. Semaphore UI, “Semaphore scheduled tasks”. URL: https://semaphoreui.com/docs/user-guide/schedules (consulté le: ).
  74. AWX project, “AWX activity stream”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/main_menu.html (consulté le: ).
  75. Semaphore UI, “Semaphore Community, Pro and Enterprise”. URL: https://semaphoreui.com/pricing (consulté le: ).
  76. Red Hat, “Red Hat: AWX and Ansible Automation Platform”. URL: https://www.redhat.com/en/technologies/management/ansible/compare-awx-vs-ansible-automation-platform (consulté le: ).
  77. Red Hat, “Red Hat automation controller, formerly Ansible Tower”. URL: https://www.redhat.com/en/technologies/management/ansible/automation-controller (consulté le: ).
  78. Semaphore UI, “Semaphore stable releases”. URL: https://github.com/semaphoreui/semaphore/releases (consulté le: ).
  79. AWX project, “AWX release history”. URL: https://github.com/ansible/awx/releases (consulté le: ).
  80. Semaphore MCP contributors, “Semaphore MCP connector”. URL: https://github.com/cloin/semaphore-mcp (consulté le: ).
  81. Semaphore MCP contributors, “Semaphore MCP task execution and output”. URL: https://github.com/cloin/semaphore-mcp/blob/72f5b7008f6d560c74e01da9884e6fddbbf68999/src/semaphore_mcp/tools/tasks.py (consulté le: ).
  82. LY Corporation, “AWX MCP connector and compatibility”. URL: https://github.com/lycorp-jp/awx-mcp/tree/fa4d25ffa9e04967e98dc66b219a0481d61ea814 (consulté le: ).
  83. LY Corporation, “AWX MCP job template execution”. URL: https://github.com/lycorp-jp/awx-mcp/blob/fa4d25ffa9e04967e98dc66b219a0481d61ea814/awx_mcp/tools/job_templates.py (consulté le: ).
  84. LY Corporation, “AWX MCP job output”. URL: https://github.com/lycorp-jp/awx-mcp/blob/fa4d25ffa9e04967e98dc66b219a0481d61ea814/awx_mcp/tools/jobs.py (consulté le: ).
  85. HashiCorp, “Terraform local state backend”. URL: https://developer.hashicorp.com/terraform/language/backend/local (consulté le: ).
  86. HashiCorp, “Terraform state locking”. URL: https://developer.hashicorp.com/terraform/language/state/locking (consulté le: ).
  87. Semaphore UI, “Semaphore variable groups”. URL: https://semaphoreui.com/docs/user-guide/environment (consulté le: ).
  88. Semaphore UI, “Semaphore runner selection and capacity”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/RemoteJob.go (consulté le: ).
  89. Semaphore UI, “Semaphore cron and one-time schedule execution”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/schedules/SchedulePool.go (consulté le: ).
  90. AWX project, “AWX schedules”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/scheduling.html (consulté le: ).
  91. Ansible community, “Ansible constructed inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/constructed_inventory.html (consulté le: ).
  92. Ansible community, “Ansible cache plugins”. URL: https://docs.ansible.com/projects/ansible/latest/plugins/cache.html (consulté le: ).
  93. Semaphore UI, “View and export the Semaphore audit log”. URL: https://semaphoreui.com/docs/admin-guide/audit-log/view (consulté le: ).
  94. Semaphore UI, “Semaphore administrator audit-log access”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/api/audit_log.go (consulté le: ).
  95. AWX project, “AWX logging and aggregation”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/logging.html (consulté le: ).
  96. Semaphore UI, “Semaphore audit log”. URL: https://semaphoreui.com/docs/admin-guide/audit-log (consulté le: ).
  97. Semaphore UI, “Ansible role and collection installation”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db_lib/AnsibleApp.go (consulté le: ).
  98. Semaphore UI, “Task-history cleanup”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/sql/task.go (consulté le: ).
  99. Semaphore UI, “Ansible inventory overrides”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/TaskRunner.go (consulté le: ).
  100. AWX project, “Projects, Ansible Galaxy and collections”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/projects.html#ansible-galaxy-support (consulté le: ).
  101. AWX project, “Management jobs”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/management_jobs.html (consulté le: ).
  102. Semaphore UI, “Terraform plan and apply execution”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db_lib/TerraformApp.go (consulté le: ).
  103. Semaphore UI, “Repository working directories”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Repository.go (consulté le: ).
  104. HashiCorp, “Terraform plan command”. URL: https://developer.hashicorp.com/terraform/cli/commands/plan (consulté le: ).
  105. HashiCorp, “Terraform apply command”. URL: https://developer.hashicorp.com/terraform/cli/commands/apply (consulté le: ).
  106. Semaphore UI, “Security policy”. URL: https://github.com/semaphoreui/semaphore/security/policy (consulté le: ).
  107. AWX project, “Security policy”. URL: https://github.com/ansible/awx/security/policy (consulté le: ).
  108. AWX project, “Release status and project overview”. URL: https://github.com/ansible/awx/blob/devel/README.md (consulté le: ).
  109. Semaphore UI, “Semaphore notification channel implementation”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/alert.go (consulté le: ).

Comparaison réalisée par l’équipe Semaphore UI à partir de la documentation, des dépôts et des pages de tarifs ci-dessus. La date de consultation est indiquée pour chaque source.