Ansible UI: AWX frente a Semaphore UI

Denis GukovFundador y CTO de Semaphore UI
18 min de lectura

AWX y Semaphore UI proporcionan interfaces web y API para ejecutar la automatización en todo un equipo. Esta comparación cubre AWX 24.6.1 y Semaphore UI 2.20.0, desde herramientas compatibles e implementación hasta flujos de trabajo, control de acceso y mantenimiento continuo.

Comenta este artículo con IA

Descripción general

Un playbook de Ansible puede empezar como un comando que un ingeniero ejecuta en su portátil. Cuando los despliegues, la aplicación de parches y la renovación de certificados pasan a ser responsabilidades compartidas, el equipo necesita un lugar común para iniciar esos trabajos, introducir parámetros, gestionar credenciales y consultar resultados. AWX y Semaphore UI ofrecen esa capa compartida, con configuraciones de trabajos guardadas, programaciones, permisos e historial de ejecución.

AWX organiza la automatización en torno a Ansible. Los equipos conectan los playbooks almacenados en Git con inventarios y credenciales, los guardan como plantillas de trabajo y combinan trabajos en flujos de trabajo. Las organizaciones, los equipos y los permisos controlan quién puede utilizar cada recurso. AWX es un proyecto de código abierto, mientras que Red Hat Ansible Automation Platform (AAP) es una oferta comercial independiente con su propio soporte y ciclo de vida.

Semaphore UI también se centra en tareas reutilizables, con playbooks de Ansible y plantillas específicas para Terraform/OpenTofu, Terragrunt, Bash, PowerShell y Python. Los proyectos reúnen estas plantillas, repositorios, inventarios, credenciales y variables. Un flujo de trabajo puede conectar el aprovisionamiento de infraestructura como código (IaC) con la configuración de hosts y el mantenimiento posterior, reuniendo las operaciones de estas herramientas en una sola interfaz.

Plantillas de tareas Semaphore UI para Ansible, OpenTofu, Terragrunt, Bash y PowerShell en un solo proyecto.
Semaphore UI. Diferentes herramientas de automatización comparten la lista de plantillas de un proyecto, con columnas configurables.
Lista de plantillas AWX que muestra plantillas de trabajo Ansible y plantillas de flujo de trabajo reutilizables dentro de una organización.
AWX. Las plantillas de trabajo y flujo de trabajo Ansible comparten una lista con controles de organización y lanzamiento.

Comparación rápida

Los trabajos, credenciales y programaciones guardados cubren las operaciones de rutina Ansible en ambos productos. Sus diferencias más amplias están en la cobertura de herramientas, la implementación y la gestión de recursos. A continuación te presentamos las principales características de cada uno.

Herramientas de automatización, instalación, ejecución, flujos de trabajo, inventarios, control de acceso, credenciales, variables, licencia.
Criterios Semaphore UI AWX
Herramientas de automatización Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell, Python AnsibleOtras herramientas a través de playbooks
Instalación Binario, paquetes, Docker, Kubernetes Kubernetes (Operador), Docker (desarrollo/pruebas)
Plataformas de servidor Linux, macOS, Windows, FreeBSD Contenedores Linux (Kubernetes / Docker)
Ejecución de tareas En el servidor o en máquinas de ejecución remotas En servidores de ejecución o pods de trabajos de Kubernetes
Flujos de trabajo Sí, flujos de trabajo visuales que conectan varias herramientas de automatización Sí, flujos de trabajo visuales de Ansible con subflujos reutilizables
Programación Expresiones cron, ejecuciones únicas Programaciones únicas y recurrentes
Gestión de inventarios Inventarios estáticos y Git, complementos dinámicos, NetBox y otras fuentes externas Inventarios estáticos y dinámicos, actualizaciones gestionadas, inventarios construidos
Control de acceso RBAC, roles de proyecto, roles personalizados, permisos de plantillaLDAP, OIDC, TOTP local RBAC, roles de organización y equipo, permisos por recursoLDAP, OIDC, SAML, MFA a través de un proveedor de identidad
Credenciales Key Store, claves SSH, contraseñas, integraciones con almacenes de secretos externos Objetos de credenciales, claves SSH, contraseñas, integraciones con almacenes de secretos externos
Variables Grupos de variables reutilizables, variables extra, variables de entorno, formularios de ejecución Variables de inventario, host y grupo, variables extra, formularios de ejecución
Licencia MIT (Community)Términos comerciales separados para ediciones de pago Apache 2.0

Para los trabajos habituales de Ansible, ambos permiten iniciar ejecuciones, programarlas y consultar su historial. Las principales diferencias son la gestión de inventarios y permisos, las herramientas que ejecutan directamente y las opciones de despliegue.

Las funciones de Semaphore UI descritas aquí abarcan Community, Pro y Enterprise. Las indicaciones de disponibilidad señalan la edición mínima requerida. La sección «Licencias y soporte» explica las opciones comerciales.

Comparación de características

Un despliegue puede aprovisionar infraestructura, configurar hosts y esperar una aprobación antes de modificar producción. Dónde se ejecutan estos pasos, cómo intercambian resultados y quién los controla permite entender las diferencias más relevantes entre los productos.

Instalación y configuración

La instalación recomendada de AWX utiliza Kubernetes. Semaphore UI también admite implementaciones independientes, por lo que la infraestructura necesaria para alojar el servicio es un primer punto de diferencia.

CompatibleParcialmente compatibleNo compatible
Instalación y configuración: AWX y Semaphore UI
Criterios Semaphore UI AWX
Binario independiente Sí No
Paquetes nativos Linux SíDEB / RPM No
Implementación de Docker Sí ParcialSolo desarrollo y pruebas
Implementación de Kubernetes SíChart de Helm SíAWX Operator
Servidor nativo Windows SíAnsible requiere WSL, un contenedor o un runner de Linux NoContenedores Linux
Alta disponibilidad SíEnterpriseBase de datos compartida, Redis, equilibrador de carga. SíRéplicas, configure la conmutación por error de la base de datos por separado

La implementación recomendada de AWX combina el operador Kubernetes, PostgreSQL y la ejecución de trabajos en contenedores. Su configuración Docker está destinada al desarrollo y las pruebas. Para un equipo Kubernetes existente, el operador sigue un modelo operativo familiar. La introducción de un clúster exclusivamente para AWX agrega infraestructura que mantener.

Semaphore UI también admite Kubernetes mediante Helm, además de instalaciones con binarios, paquetes nativos y Docker con SQLite, MySQL o PostgreSQL. Una instalación independiente puede utilizar un servidor existente sin requerir un clúster, lo que permite empezar con una infraestructura más pequeña y elegir el modelo operativo.

El sistema operativo del servidor es independiente de la ejecución del trabajo. Semaphore UI tiene un binario de servidor nativo Windows, mientras que Ansible aún necesita Linux, macOS, un contenedor adecuado o WSL. Un ejecutor Linux puede ejecutar trabajos para un servicio web alojado en otro lugar. Ambas plataformas pueden gestionar objetivos Windows a través de Ansible.

Para lograr alta disponibilidad, las opciones de escalamiento de AWX y la implementación de alta disponibilidad de Semaphore UI Enterprise requieren una planificación de recuperación y conmutación por error de la base de datos. Las instalaciones desconectadas también necesitan una ruta de entrega para paquetes, imágenes de ejecución, actualizaciones y cualquier activación de licencia de pago.

Herramientas de automatización

Una implementación puede aprovisionarse con Terraform/OpenTofu, configurarse con Ansible y finalizar con Python. AWX invoca las otras herramientas a través de playbooks, mientras que Semaphore UI proporciona plantillas de tareas directas.

CompatibleParcialmente compatibleNo compatible
Herramientas de automatización: AWX y Semaphore UI
Criterios Semaphore UI AWX
Playbooks de Ansible Sí Sí
Terraform/OpenTofu SíPlantilla de tarea nativa ParcialA través de playbooks de Ansible
Terragrunt SíPlantilla de tarea nativa ParcialA través de playbooks de Ansible
Bash SíPlantilla de tarea nativa ParcialA través de playbooks de Ansible
PowerShell SíPlantilla de tarea nativa ParcialA través de playbooks de Ansible
Python SíPlantilla de tarea nativa ParcialA través de playbooks de Ansible

AWX mantiene a Ansible en el centro de la ejecución. Los playbooks pueden invocar Terraform/OpenTofu, Terragrunt, Bash, PowerShell o Python a través de módulos o comandos cuando el entorno de ejecución contiene las dependencias. Esto se adapta a los equipos que ya describen su proceso de aprovisionamiento en Ansible.

Semaphore UI les da a esas herramientas sus propias plantillas. Los equipos pueden iniciar la automatización existente directamente y combinarla en flujos de trabajo sin tener que mantener playbooks adicionales solo para invocar otra herramienta. Una tarea OpenTofu puede aprovisionar infraestructura, una tarea Ansible configurar los hosts y una tarea Python completar una operación relacionada, todo en una sola interfaz.

Semaphore UI Pro ofrece un backend HTTP integrado para el state de Terraform/OpenTofu, además de workspaces y opciones de ejecución. Los equipos pueden conservar el state compartido en Semaphore UI sin operar un backend independiente. Con AWX, el proceso de Terraform utiliza el backend configurado por el equipo. La fuente de inventario Terraform State de AWX lee el state para descubrir hosts, pero no lo almacena.

La ejecución de Terraform en Semaphore UI 2.20 tiene dos límites importantes. Una ejecución normal muestra un plan antes de aplicarlo, pero no lo guarda automáticamente para aplicar después exactamente ese archivo. Si la aprobación debe cubrir el cambio concreto propuesto, configure el proceso para guardar el plan y pasarlo a apply. Además, los comandos predeterminados de Terraform desactivan el bloqueo del state salvo que se modifiquen explícitamente, incluso si el backend lo admite. Revise ambas opciones al configurar ejecuciones en producción.

Plantillas y programación

AWX llama Job Template a una configuración de Ansible guardada. Semaphore UI la llama Task Template. Cada inicio crea un trabajo independiente en AWX o una tarea independiente en Semaphore UI, con su propio estado, registros y resultado. La plantilla conserva los ajustes reutilizables, mientras que los formularios y las programaciones controlan los parámetros y el momento de la ejecución.

CompatibleParcialmente compatibleNo compatible
Plantillas y programación: AWX y Semaphore UI
Criterios Semaphore UI AWX
Configuración de tarea guardada Sí Sí
Formularios de ejecución (parámetros) Sí Sí
Conjuntos de variables reutilizables SíVariable Groups compartidos entre plantillas ParcialVariables de inventario o archivos en Git
Rama del repositorio en el lanzamiento Sí Sí
Ejecuciones programadas SíExpresiones cron y ejecuciones únicas SíProgramaciones únicas y recurrentes

En AWX, un Job Template selecciona un proyecto, un playbook, un inventario y las credenciales, junto con un entorno de ejecución para las dependencias necesarias. El Ansible Task Template de Semaphore UI selecciona un repositorio, un playbook y un inventario, con Variable Groups reutilizables y opciones de Ansible en el mismo formulario. Los ingenieros preparan esta configuración una vez. Después, sus compañeros pueden iniciar la operación sin tener que reconstruirla cada vez.

Editor de un Ansible Task Template en Semaphore UI con repositorio, playbook, inventario, Variable Groups y parámetros solicitados al iniciar.
Semaphore UI. Un Ansible Task Template con variables compartidas y opciones de inicio.
Editor de un Job Template en AWX con proyecto, inventario, playbook, credenciales y entorno de ejecución.
AWX. Un Ansible Job Template con selección de recursos y parámetros solicitados al iniciar.

Los formularios de ejecución permiten proporcionar parámetros sin editar un playbook. AWX admite validaciones como límites de longitud del texto. Las Survey Variables de Semaphore UI ofrecen campos tipados, texto multilínea, secretos y selección simple o múltiple. Los grupos de variables reutilizables separan la configuración compartida de los valores introducidos al iniciar. AWX permite compartir configuración mediante variables de inventario, host y grupo o archivos en Git, en lugar de un objeto Variable Groups independiente seleccionable en varias plantillas.

Ambos pueden ejecutar otra rama del repositorio si la configuración lo permite. AWX puede solicitar el inventario, las credenciales y otros parámetros al iniciar. Semaphore UI permite sustituir el inventario de Ansible y los argumentos de línea de comandos según lo configurado. Estas opciones dan flexibilidad a los ingenieros y permiten limitar los parámetros expuestos para los procedimientos aprobados.

Las programaciones automatizan esos lanzamientos. AWX utiliza una fecha de inicio, hora y configuración de recurrencia. Semaphore UI admite expresiones cron y ejecuciones únicas. Por ejemplo, 0 2 * * * se ejecuta diariamente a las 02:00 en la zona horaria configurada del programador, que de forma predeterminada es UTC. Cualquiera de los dos enfoques puede manejar copias de seguridad, comprobaciones de host o detener máquinas que no son de producción fuera del horario laboral.

Cuadro de diálogo de programación Semaphore UI con una expresión cron diaria, plantilla de tarea y siguiente tiempo de ejecución.
Semaphore UI. Una programación cron con entradas de tareas y una vista previa de la siguiente ejecución.
Formulario de programación AWX con recurrencia diaria, zona horaria, condiciones de finalización y excepciones.
AWX. Una programación con zona horaria, recurrencia, condiciones de finalización y excepciones.

Inventario

Ambos productos pueden utilizar archivos estáticos y descubrimiento dinámico. La principal diferencia es si los hosts descubiertos se convierten en registros administrados por la plataforma o si Ansible los resuelve cuando se ejecuta un trabajo.

CompatibleParcialmente compatibleNo compatible
Inventario: AWX y Semaphore UI
Criterios Semaphore UI AWX
Inventarios estáticos SíEditor y archivos INI/YAML SíRegistros de host/grupo y archivos importados
Inventarios en Git SíRepositorio de inventario igual o separado SíFuentes del proyecto SCM
Inventarios dinámicos SíComplementos Ansible y scripts ejecutables SíComplementos, scripts y fuentes administradas
Actualización de inventarios ParcialDescubrimiento durante la ejecución SíActualizaciones programadas y actualización en el lanzamiento
Grupos de inventario calculados SíPlugin constructed de Ansible SíInventarios construidos gestionados
Caché de facts gestionada NoConfigure el almacenamiento en caché Ansible por separado SíFacts de los hosts almacenados por AWX
Editar hosts y grupos ParcialEditar definiciones INI/YAML SíControles individuales de host y grupo

AWX mantiene registros de host y grupo y los actualiza mediante trabajos de actualización de inventario, utilizando archivos estáticos, complementos de inventario Ansible o scripts ejecutables. Semaphore UI permite a los equipos editar inventarios INI/YAML o cargarlos desde Git, incluido un repositorio separado. Los complementos y scripts descubren hosts durante la ejecución. La principal distinción es si la plataforma gestiona un ciclo de vida del inventario o reutiliza la configuración Ansible del equipo.

Editor de inventario de Ansible en Semaphore UI con dos hosts web de staging definidos en YAML estático.
Semaphore UI. Un inventario estático YAML con grupos de hosts y variables de conexión.
Inventario de AWX con hosts de staging individuales, su grupo web y controles de activación por host.
AWX. Registros de host individuales con membresía grupal y controles por host.

Por ejemplo, el complemento netbox.netbox.nb_inventory descubre dispositivos y máquinas virtuales, filtra objetivos y crea grupos a partir de datos NetBox. NetBox sigue siendo la fuente de la verdad. AWX agrega controles de actualización y registros almacenados, mientras que Semaphore UI pasa la configuración a Ansible. Ambos utilizan el complemento Ansible en lugar de un conector NetBox nativo independiente. Otras fuentes incluyen AWS, Azure y Google Cloud, y Semaphore UI documenta un script Python alojado en Git para Consul.

Los inventarios construidos de AWX combinan inventarios de entrada guardados y gestionan los hosts resultantes. Semaphore UI puede utilizar el plugin constructed de Ansible para crear grupos y variables a partir de fuentes anteriores. Los plugins de caché de Ansible pueden conservar facts, pero Semaphore UI no ofrece la caché de facts gestionada de AWX. El almacenamiento, la caducidad y el uso compartido de la caché entre runners siguen siendo parte de la configuración de Ansible.

Semaphore UI tiene previsto incorporar informes de Ansible al estilo de ARA en la versión 2.21.0. Complementarán las funciones de inventario con una vista de cada host y de su historial de automatización, lo que ayudará a los operadores a ver qué tareas se ejecutaron en cada servidor, cuándo y dónde se produjeron fallos.

Elija el modelo de inventario de AWX cuando los operadores necesiten explorar, actualizar y administrar registros de host en la plataforma. Semaphore UI se adapta a una configuración en la que Git define el inventario o Ansible descubre hosts de sistemas como NetBox y API en la nube en el momento de la ejecución.

Secretos

Los trabajos guardados necesitan credenciales sin que los operadores tengan que pegar contraseñas o tokens de nube en cada ejecución. Las opciones de almacenamiento y consulta determinan cómo llegan esas credenciales al trabajo.

CompatibleParcialmente compatibleNo compatible
Secretos: AWX y Semaphore UI
Criterios Semaphore UI AWX
Almacenamiento de credenciales Sí Sí
HashiCorp Vault SíPro Sí
OpenBao SíPro NoSin integración incorporada, se debe probar la compatibilidad con Vault
AWS Secrets Manager SíEnterprise Sí
Azure Key Vault SíEnterprise Sí
Devolutions Server SíEnterprise NoNo hay integración incorporada, es posible una conexión personalizada

Los objetos de credenciales AWX y el almacén de claves de Semaphore UI proporcionan credenciales para trabajos guardados sin necesidad de que un operador los pegue en cada inicio. Ambos se integran con HashiCorp Vault, AWS Secrets Manager y Azure Key Vault, para que los equipos puedan seguir utilizando esos servicios existentes.

Formulario de configuración de Vault en Semaphore UI con URL del servidor, mount, namespace y opciones de origen del token.
Semaphore UI. Parámetros de conexión a Vault, mount y origen del token.
AWX HashiCorp Vault Formulario de credencial de búsqueda secreta que muestra los campos de conexión y autenticación.
AWX. Campos de autenticación y conexión de búsqueda de Vault. Otras configuraciones continúan debajo de la ventana gráfica.

Otras integraciones distinguen los productos. AWX ofrece CyberArk Central Credential Provider, CyberArk Conjur y tipos de credenciales personalizados. Semaphore UI proporciona integraciones dedicadas de OpenBao y Devolutions Server. La búsqueda de Vault de AWX puede funcionar con un servicio compatible, pero la compatibilidad de OpenBao necesita verificación para la operación requerida.

Compare la integración de la bóveda que su equipo ya utiliza, incluido su método de autenticación y los tipos de secretos que necesitan sus trabajos. Los servicios sin integración incorporada pueden requerir un código de recuperación personalizado.

Ejecución

Un trabajo necesita capacidad de ejecución con acceso a sus sistemas de destino. Los agentes remotos resuelven la ubicación en la red y las imágenes de contenedores proporcionan las dependencias del entorno de ejecución.

CompatibleParcialmente compatibleNo compatible
Ejecución: AWX y Semaphore UI
Criterios Semaphore UI AWX
Ejecución remota Sí Sí
Capacidad de ejecución dedicada SíProRunners de proyecto SíGrupos de instancias asignados a recursos
Enrutamiento de ejecución SíProEtiquetas de runner en plantillas o inventarios SíGrupos de instancias asignados a recursos
Roles y colecciones de Ansible SíInstalación desde requirements.yml SíInstalación durante la sincronización del proyecto
Tareas en contenedores SíProEjecutor Docker SíImágenes de entornos de ejecución de Ansible
Pods de trabajos de Kubernetes SíEnterprise Sí
Controles de concurrencia SíLímites de plantilla, proyecto e instancia SíTrabajos simultáneos y capacidad de los grupos de instancias

AWX envía trabajo a nodos de ejecución, agrupados en grupos de instancias que se pueden asignar a organizaciones, inventarios o plantillas. Semaphore UI ejecuta trabajos en su servidor o los envía a los runners. En cualquiera de los modelos, las máquinas de ejecución pueden ubicarse cerca de los sistemas de destino mientras la interfaz web permanece centralizada.

Un runner de Semaphore UI dentro de una red privada puede aplicar parches o renovar certificados sin conectividad directa desde el servidor web a los hosts. Los runners de proyecto asignan capacidad a un proyecto y las etiquetas de las plantillas o inventarios dirigen los trabajos a runners compatibles. Esto permite trabajar con sedes distribuidas y entornos de clientes. Las etiquetas de enrutamiento seleccionan máquinas, pero no imponen aislamiento de redes ni de cuentas de nube.

El entorno de ejecución determina qué puede ejecutarse en esas máquinas. AWX utiliza imágenes de entornos de ejecución con Ansible y sus dependencias, y los grupos de contenedores pueden crear un pod de Kubernetes por trabajo. Semaphore UI ofrece ejecución por tarea en Docker con Pro y en Kubernetes con Enterprise. Estas opciones son independientes del alojamiento del servicio web en un contenedor. Ambos productos pueden instalar roles y colecciones de Ansible declarados en los requisitos del repositorio. Las demás bibliotecas y herramientas deben estar en la máquina de ejecución o en su imagen.

Los controles de concurrencia limitan el trabajo simultáneo. AWX combina configuraciones de trabajos simultáneos con capacidad de ejecución y límites de grupos de instancias. Semaphore UI aplica límites de instancia, proyecto y plantilla.

AWX también puede dividir automáticamente un inventario grande en trabajos paralelos. Semaphore UI puede dividir el trabajo en ejecuciones separadas con límites de host Ansible, con etiquetas de runner que seleccionan las máquinas de ejecución. El equipo mantiene esos subconjuntos y los lanza. Para actualizaciones graduales, la configuración serial de Ansible controla lotes secuenciales. Estos cubren ejecuciones específicas e implementaciones por etapas, mientras que la división de trabajos de AWX proporciona una partición automática para trabajos paralelos en toda la flota.

Flujos de trabajo

Provisioning puede requerir un plan, aprobación, implementación y configuración del host, con diferentes caminos después del éxito o el fracaso. La composición del flujo de trabajo determina cómo se conectan esos pasos.

CompatibleParcialmente compatibleNo compatible
Flujos de trabajo: AWX y Semaphore UI
Criterios Semaphore UI AWX
Editor de flujo de trabajo visual Sí Sí
Múltiples nodos iniciales No Sí
Unión de ramas Sí Sí
Flujos de trabajo como pasos No Sí
Ramas de éxito y error Sí Sí
Pasos de aprobación Sí Sí
Rol de aprobador independiente NoAnunciado para la versión 2.21 Sí
Pasar valores de flujo de trabajo Sí Sí

Los flujos de trabajo de AWX conectan las plantillas de trabajo de Ansible entre sí. Las demás herramientas se invocan a través de playbooks. Semaphore UI conecta las plantillas Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell y Python directamente. Ambos admiten aprobaciones y ramas de éxito/fracaso, por lo que un proceso de aprovisionamiento puede detenerse antes de un cambio de producción.

Ambos utilizan grafos sin bucles y permiten exigir, en las uniones, que se cumplan las condiciones de todos los predecesores o de cualquiera de ellos. AWX permite varios nodos iniciales. Semaphore UI comienza en un solo nodo y ofrece nodos de tarea, aprobación, espera temporizada y anotación.

AWX puede reutilizar un flujo de trabajo completo dentro de otro, manteniendo un procedimiento compartido de varios pasos en un solo lugar. Previene la ejecución recursiva y ofrece pasos de actualización del repositorio y del inventario. Semaphore UI reutiliza plantillas de tareas individuales en todos los flujos de trabajo, pero no puede integrar un flujo de trabajo como un paso. La diferencia es importante cuando varias implementaciones comparten un procedimiento en lugar de un único trabajo.

Editor de flujo de trabajo Semaphore UI con un paso de plan, aprobación, implementación y ramas separadas de éxito y fracaso.
Semaphore UI. Un flujo de trabajo de implementación con aprobación y rutas separadas de éxito y fracaso.
Visualizador de flujo de trabajo AWX completo que muestra un plan, aprobación, implementación, verificación de versión anidada y rama de recuperación.
AWX. Aprobación antes de la implementación, un flujo de trabajo de verificación anidado y una rama de recuperación de fallas.

AWX dispone de un rol de aprobador asignable de forma independiente. Los administradores también pueden aprobar. En Semaphore UI 2.20, la aprobación depende del permiso para ejecutar tareas del proyecto. Es una diferencia importante si el equipo debe asignar la aprobación por separado de la ejecución. Se ha anunciado un rol de aprobador independiente para Semaphore UI 2.21, que no forma parte de esta comparación.

Ambos permiten aprobar desde la interfaz y mediante una API autenticada. AWX también ofrece un módulo de Ansible. La aprobación interactiva en Slack necesita una integración que llame a la API, una notificación por sí sola no basta.

Ambos pasan valores a los trabajos posteriores, como la dirección de un host recién aprovisionado. AWX expone los valores definidos con set_stats en el playbook como variables extra para los trabajos posteriores, también en los nodos de ejecución. Así, un playbook puede capturar el resultado de otra herramienta. Semaphore UI recopila valores de Ansible set_stats, outputs de Terraform/OpenTofu/Terragrunt y JSON de Bash, PowerShell o Python. Después asigna los valores a las variables del formulario de destino, mediante nombres coincidentes o asignaciones explícitas.

En Semaphore UI 2.20, los outputs del flujo de trabajo se recopilan en el servidor y en los runners remotos que utilizan el ejecutor local. Los ejecutores Docker y Kubernetes aún no producen outputs del flujo de trabajo. Los valores se recopilan después de las tareas completadas correctamente. Por tanto, las ramas de error no pueden depender de los outputs de una tarea fallida. Estos valores son visibles para los usuarios con permiso para consultar la tarea y no deben contener secretos.

La transmisión de valores no transfiere archivos en ninguno de los productos. Si pasos separados intercambian un plan de Terraform guardado u otro artefacto, proporcione almacenamiento accesible para ambos. Reutilizar un runner no garantiza que el directorio de trabajo se conserve entre tareas.

Control de acceso

Es posible que el personal de soporte necesite reiniciar un servicio aprobado sin iniciar sesión en el servidor de propósito general. La delegación debe limitar tanto la operación como sus objetivos.

CompatibleParcialmente compatibleNo compatible
Control de acceso: AWX y Semaphore UI
Criterios Semaphore UI AWX
Control de acceso basado en roles SíRoles de proyecto, roles personalizados en Enterprise SíRoles de organización, equipo y recursos.
Permisos independientes para inventarios y credenciales NoEl acceso a los recursos sigue los roles del proyecto Sí
Permisos de ejecución a nivel de plantilla SíEnterprise Sí
LDAP y OIDC SíPro Sí
Inicio de sesión único SAML NoOIDC disponible Sí
Autenticación de dos factores SíProTOTP local SíA través de un proveedor de identidad externo

AWX otorga permisos de forma independiente a inventarios, credenciales y plantillas de trabajo. Semaphore UI organiza el acceso en torno a los proyectos, con roles personalizados Enterprise y permisos de ejecución a nivel de plantilla para una delegación más precisa. Una plantilla preconfigurada puede exponer una operación aprobada utilizando el inventario, las credenciales y la configuración de ejecución elegidos.

Por ejemplo, Semaphore UI Enterprise puede dar al personal de soporte acceso a una plantilla de reinicio de servicio para determinados servidores de producción. Un rol base Guest, junto con un rol personalizado sin permisos para todo el proyecto, puede permitir ejecutar esa plantilla. Restrinja las sustituciones del inventario, los límites de hosts, las variables y otros parámetros al iniciar. Compruebe también que otros roles no amplíen el acceso. La plantilla, los permisos y la automatización definen conjuntamente la operación permitida. El formulario solo recopila los parámetros.

Esto permite delegar operaciones concretas sin crear permisos independientes para inventarios o credenciales dentro de un proyecto. AWX encaja mejor cuando los operadores necesitan combinar recursos sujetos a reglas de acceso separadas. Los permisos por plantilla de Semaphore UI se adaptan a un conjunto definido de procedimientos aprobados.

Ambos admiten LDAP y OIDC para iniciar sesión. AWX también es compatible con SAML y depende de un proveedor de identidad externo para MFA. Semaphore UI ofrece autenticación de dos factores local TOTP. Un proveedor de identidad con OIDC puede cubrir el inicio de sesión centralizado de Semaphore UI, mientras que un requisito exclusivo de SAML necesita otro enfoque de integración.

Registros y auditoría

La salida del trabajo explica los fallos de ejecución. El historial de auditoría registra quién inició una operación o cambió su configuración, con diferentes requisitos de visibilidad y retención.

CompatibleParcialmente compatibleNo compatible
Registros y auditoría: AWX y Semaphore UI
Criterios Semaphore UI AWX
Historial y registros de tareas Sí Sí
Retención del historial de tareas SíMantener tareas recientes por plantilla SíLimpieza programada según la antigüedad
Historial de auditoría entre proyectos SíRegistro de auditoría para administradores, requiere activar el registro SíFlujo de actividades, visibilidad basada en roles
Reenvío SIEM SíProTLS Syslog y Splunk HEC SíRegistro externo, incluido Splunk

Ambos productos conservan el historial de tareas y los resultados para la resolución de problemas. La visibilidad de la auditoría difiere: el flujo de actividad de AWX sigue los permisos de recursos y los roles de administrador o auditor. La vista de auditoría entre proyectos de Semaphore UI está disponible para los administradores, con eventos almacenados en su base de datos cuando la grabación de auditoría está habilitada.

Para investigaciones centralizadas, el registro externo de AWX reenvía registros de actividad, trabajos y servidor, también a Splunk. Semaphore UI Pro añade filtros de auditoría, exportación en CSV o JSONL y reenvío mediante TLS Syslog o Splunk HEC. Ambos pueden proporcionar eventos a una plataforma de registros o a un sistema de gestión de eventos e información de seguridad (SIEM).

La retención local utiliza diferentes controles. AWX proporciona una limpieza programada basada en la antigüedad para el historial de ejecución y el flujo de actividad. Semaphore UI mantiene una cantidad configurada de tareas recientes por plantilla. Un sistema de registro central puede retener registros más allá de esos límites locales.

Integraciones

Los cambios en el repositorio y las solicitudes del portal de servicios pueden desencadenar la automatización. Los API, webhooks y notificaciones conectan esos eventos con trabajos y sus resultados.

CompatibleParcialmente compatibleNo compatible
Integraciones: AWX y Semaphore UI
Criterios Semaphore UI AWX
REST API Sí Sí
Webhooks de trabajo SíPuntos finales genéricos, comparadores, extracción de valor SíWebhooks GitHub y GitLab
Notificaciones de trabajos Sí Sí

AWX ofrece webhooks de trabajos integrados para GitHub y GitLab que permiten activar la automatización desde los repositorios. Semaphore UI ofrece endpoints webhook genéricos que filtran las solicitudes según reglas y extraen los parámetros de las tareas. Estos endpoints pueden recibir eventos de distintos sistemas, mientras que las API REST de ambos productos permiten el acceso de otros clientes.

Para las notificaciones salientes, AWX ofrece correo electrónico, Slack, Rocket.Chat, Mattermost, PagerDuty, AWS SNS, Grafana, IRC, Twilio y webhooks. Semaphore UI admite correo electrónico (SMTP), Telegram, Slack, Microsoft Teams, Rocket.Chat, DingTalk y Gotify. Estos canales comunican eventos de los trabajos a personas o servicios, mientras que los webhooks entrantes de trabajos inician la automatización.

Un portal de servicios o un sistema ITSM puede utilizar la API REST de cualquiera de los productos para iniciar un trabajo preparado y recuperar su resultado. Por ejemplo, un portal interno puede enviar una solicitud de renovación de certificado a una plantilla guardada e informar al solicitante cuando finalice. Se trata de una integración mediante API configurada por el equipo, no de un conector nativo específico.

Automatización asistida por IA

Ambas plataformas ofrecen recursos útiles a asistentes de programación como Claude Code y Codex: documentación pública, código fuente abierto y API documentadas. Un asistente puede consultar ejemplos de configuración, examinar cómo se implementa un ajuste y utilizar las definiciones de las API para proponer código de integración. Si dispone de la configuración correspondiente y de la salida del trabajo, también puede ayudar a investigar fallos. Esto permite configurar la plataforma y resolver problemas con ayuda de la IA sin una función de IA específica integrada en el producto.

Existen conectores MCP de la comunidad tanto para AWX como para Semaphore UI. Según el conector, permiten a los asistentes interactuar con la plataforma para buscar plantillas, iniciar trabajos y recuperar resultados. Así, un equipo puede utilizar automatizaciones preparadas mediante un asistente, manteniendo las definiciones de los trabajos y su ejecución en la plataforma.

Semaphore UI ha anunciado soporte oficial de MCP para Pro en la versión 2.21.0.

Licencias y soporte

Tanto AWX como Semaphore UI ofrecen software gratuito de código abierto. La principal diferencia es cómo los equipos pueden obtener capacidades comerciales, soporte de proveedores y compromisos contractuales a medida que la automatización se vuelve más importante para sus operaciones.

Opciones comerciales y de código abierto

AWX se distribuye con licencia Apache 2.0 y recibe soporte de su comunidad. También es un proyecto upstream del componente automation controller de Red Hat Ansible Automation Platform (AAP). Red Hat no vende una suscripción de soporte para AWX. Su oferta con soporte comercial es AAP, una plataforma empresarial independiente que combina automation controller con componentes adicionales, contenido certificado y un ciclo de vida de producto definido.

Semaphore UI sigue un modelo open-core. Community es gratuito y se distribuye con licencia MIT, mientras que Pro y Enterprise añaden capacidades comerciales y soporte del proveedor dentro de la misma familia de productos. Pro está diseñado para equipos de ingeniería pequeños que incorporan la automatización a sus operaciones diarias. Enterprise responde a requisitos más exigentes de acceso, ejecución, disponibilidad y soporte.

Por lo tanto, las ofertas comerciales satisfacen diferentes necesidades de compra. AAP es una inversión en plataforma empresarial más amplia. Los planes comerciales de Semaphore UI están dirigidos a equipos de ingeniería y organizaciones medianas, con una opción de Enterprise para entornos complejos o críticos para el negocio. Los equipos pueden obtener controles avanzados y soporte de proveedores mientras mantienen su inversión enfocada en el servicio de automatización que necesitan.

Soporte y compromisos contractuales

Los usuarios de AWX pueden hacer preguntas, informar de errores y aportar correcciones mediante los canales comunitarios. Esa asistencia no obliga a un proveedor a responder dentro de un plazo ni a ofrecer soporte ante incidentes. Una suscripción a AAP proporciona soporte de Red Hat para AAP, pero no cubre una instalación de AWX existente.

Semaphore UI Community también ofrece asistencia según disponibilidad, sin SLA de soporte. Pro incluye soporte del proveedor en horario laboral. Enterprise ofrece opciones de SLA adaptadas y ayuda con la incorporación, configuración, actualizaciones y migración. Los clientes comerciales tienen así una relación directa con el proveedor, cuyas obligaciones de soporte se definen en el plan y el acuerdo aplicables.

Planificación de versiones y mantenimiento

Actualmente, AWX indica que los lanzamientos se pausan durante una refactorización a gran escala. Semaphore UI continúa publicando versiones y mantiene una política de seguridad que identifica las versiones compatibles. Estas diferencias son importantes a la hora de planificar actualizaciones y mantenimiento continuo. Revise el historial de versiones, las políticas de seguridad y la guía de actualización para la versión que desea utilizar junto con cualquier compromiso de soporte contractual.

Cómo elegir

Ambas plataformas permiten a los equipos compartir automatización, programar trabajos y revisar resultados. Elija según cómo administra la información del host, delega operaciones, aloja el servicio y obtiene soporte.

Cuándo elegir AWX

AWX es una buena opción cuando Ansible es central para su automatización y su modelo de gestión de recursos encaja con sus operaciones diarias.

  • Gestionar los inventarios desde la plataforma es un requisito esencial. Sus operadores utilizan la plataforma en su trabajo diario para mantener registros de hosts y grupos, actualizar inventarios y conservar los facts de los hosts.
  • Los inventarios y las credenciales necesitan sus propias reglas de acceso. Su equipo debe asignar permisos a inventarios y credenciales individuales independientemente de las plantillas de trabajo, lo que permite a los operadores combinar solo los recursos que están autorizados a usar.
  • Kubernetes se adapta a su infraestructura existente. Su equipo ya opera un clúster, por lo que el modelo de implementación recomendado por AWX se adapta a los sistemas y habilidades que mantiene.
  • Ansible ya orquesta sus procedimientos. Sus playbooks cubren las operaciones requeridas, incluidas las llamadas a otras herramientas, y los entornos de ejecución Ansible proporcionan sus dependencias.
  • El soporte de la comunidad satisface sus necesidades. Su equipo tiene la experiencia y la capacidad para investigar incidentes, evaluar avisos de seguridad y mantener la instalación sin un SLA de respuesta del proveedor.

Cuándo elegir Semaphore UI

Semaphore UI es una buena opción si busca un servicio sencillo para ejecutar y compartir automatización con sus herramientas e infraestructura existentes.

  • Sus inventarios ya se encuentran en Git o en sistemas externos. Desea reutilizar definiciones de inventario Ansible y complementos que descubren hosts de NetBox, API en la nube u otras fuentes cuando se ejecutan trabajos.
  • Los colegas necesitan acceso a operaciones preparadas. Los ingenieros definen tareas como implementaciones, reinicios de servicios o renovaciones de certificados. Otros miembros del equipo inician esas tareas con los parámetros necesarios, mientras que los inventarios y las credenciales siguen siendo parte de la configuración preparada.
  • Quiere desplegar el servicio sin Kubernetes. Las instalaciones binarias, de paquetes nativos y Docker le permiten utilizar un servidor existente, evitando un clúster introducido únicamente para el servicio de automatización.
  • Su automatización abarca varias herramientas. Las plantillas dedicadas ejecutan Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell y Python directamente, con flujos de trabajo que conectan sus operaciones.
  • Quiere un camino directo al soporte comercial. Las licencias comerciales agregan soporte de proveedores y capacidades avanzadas dentro de la misma familia de productos, por lo que puede obtener compromisos de soporte mientras continúa usando Semaphore UI.

Preguntas frecuentes

¿Puede Semaphore UI reemplazar a AWX?

Sí, cuando su modelo de inventario, permisos y flujo de trabajo cubra sus requisitos. Los playbooks existentes a menudo se pueden reutilizar, mientras que la configuración del trabajo y los controles de acceso deben mapearse y probarse. Verifique cualquier dependencia de funciones específicas de AWX, especialmente flujos de trabajo anidados, permisos de credenciales o inventarios independientes y almacenamiento en caché de datos administrado.

¿Puedo reutilizar mis playbooks Ansible existentes?

Empiece con el mismo repositorio y los mismos playbooks. Configure en Semaphore UI el inventario, las credenciales, las variables, las colecciones y las dependencias del entorno de ejecución necesarios, y pruebe ejecuciones representativas. Reutilizar el código no importa automáticamente todos los ajustes de AWX.

¿Qué es necesario comprobar al migrar desde AWX?

Comience con un flujo de trabajo representativo. Reutilice sus playbooks siempre que sea posible y luego asigne inventarios, credenciales, variables, encuestas, programaciones y dependencias de tiempo de ejecución. Verifique los permisos, las aprobaciones, los flujos de trabajo anidados y la transferencia de valores o archivos por separado. Una importación puede reducir el trabajo de configuración, pero no prueba que el trabajo importado se comporte de la misma manera. Pruebe antes de habilitar los programaciones de producción.

¿Qué funciones de Semaphore UI necesitan una edición de pago?

Community incluye la interfaz básica de tareas y los flujos de trabajo. Los runners de proyecto, la ejecución en Docker y las integraciones con almacenes de secretos externos están disponibles a partir de Pro. Los roles personalizados, los permisos por plantilla, la ejecución de tareas en Kubernetes y la alta disponibilidad requieren Enterprise. Al evaluar un plan, compruebe las funciones y la capacidad necesarias.

¿Puedo conservar el inicio de sesión único SAML después de migrar?

AWX admite SAML directamente. Semaphore UI admite LDAP y OIDC, pero no tiene integración nativa con SAML. Un proveedor de identidad que también ofrezca OIDC puede cubrir el requisito de inicio de sesión. Verifique la asignación de usuarios y grupos por separado, ya que cambiar el protocolo de autenticación no recrea los permisos AWX.

¿Semaphore UI requiere Kubernetes?

No. Están disponibles instalaciones binarias, de paquetes y Docker. Kubernetes es una opción de implementación opcional. Las herramientas de automatización y una base de datos adecuada siguen siendo parte del entorno.

¿Puede AWX ejecutar Terraform o usar HashiCorp Vault?

Sí. Los playbooks pueden ejecutar comandos de Terraform o módulos de colecciones, y AWX permite consultar credenciales en HashiCorp Vault. Semaphore UI ofrece otro modelo de configuración con plantillas específicas para Terraform/OpenTofu y un backend HTTP de state opcional con Pro.

¿Alguna de las plataformas admite la ejecución remota?

Ambos pueden ejecutar tareas en servidores remotos. AWX utiliza nodos de ejecución agrupados para diferentes equipos y cargas de trabajo. Semaphore UI utiliza agentes ejecutores. Sus modelos de configuración y acceso difieren.

¿Te resultó útil este artículo?

Fuentes

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

Comparación elaborada por el equipo de Semaphore UI a partir de la documentación, los repositorios y las páginas de precios citados. Cada fuente incluye su fecha de consulta.