Semaphore v2.18 introduce nuevas funciones y mejoras para la automatización de infraestructura y los equipos de DevOps. Esta versión se centra en mejorar la experiencia del desarrollador y en simplificar los flujos de trabajo de infraestructura como código.
Integración con gestores de secretos en la nube
Las organizaciones que usan plataformas en la nube necesitan una forma de obtener secretos directamente desde el servicio de gestión de secretos de su proveedor de nube en tiempo de ejecución, evitando la duplicación de credenciales y aprovechando las políticas de rotación existentes. Esta función añade integraciones nativas con AWS Secrets Manager y Azure Key Vault como capacidades exclusivas de Enterprise.

Enterprise
- Integración con AWS Secrets Manager — obtén secretos en tiempo de ejecución desde AWS Secrets Manager usando roles IAM, claves de acceso o roles asumidos. Admite secretos estructurados en JSON con extracción de campos y rotación automática. (#2248)
- Integración con Azure Key Vault — obtén secretos en tiempo de ejecución desde Azure Key Vault usando autenticación mediante identidad administrada o entidad de servicio. Admite secretos, claves y certificados con rotación automática. (#2248, #3170)
Cargar secretos desde almacenamiento remoto
Semaphore ahora puede importar automáticamente secretos desde HashiCorp Vault, AWS Secrets Manager, Azure Key Vault y Devolutions Server al almacén de claves, y mantenerlos sincronizados.

Apunta un almacenamiento de secretos a HashiCorp Vault, AWS Secrets Manager, Azure Key Vault o Devolutions Server y luego define una o más rutas de sincronización para controlar la importación:
- Ruta — de qué carpeta/subárbol del almacén remoto se importa.
- Prefijo — una cadena que se antepone al nombre de cada clave generada, para poder separar las importaciones por espacio de nombres (p. ej. prod-).
- Separador — cómo se aplanan las ubicaciones anidadas de secretos en un único nombre de clave legible (se aplican valores predeterminados razonables por proveedor).
Semaphore detecta automáticamente el tipo de clave correcto (clave SSH, usuario/contraseña o cadena secreta). Las importaciones se ejecutan bajo demanda mediante Sincronizar ahora, o según una programación en segundo plano que defines en minutos. Cada sincronización reconcilia por completo la réplica — añadiendo, actualizando y eliminando claves para que coincidan con el origen — sin tocar las claves que creaste manualmente. En despliegues de alta disponibilidad, las sincronizaciones programadas se ejecutan en un solo nodo para evitar importaciones duplicadas.
Las rutas de sincronización funcionan tanto a nivel del almacén de claves (claves compartidas del proyecto) como a nivel del grupo de variables (variables de entorno).

Múltiples grupos de variables por plantilla

Semaphore ahora permite adjuntar múltiples grupos de variables (entornos) a cada plantilla de tarea. Anteriormente, solo se podía adjuntar un único grupo de variables, lo que obligaba a los usuarios a duplicar variables entre grupos cuando varias plantillas compartían configuraciones comunes, o a construir grupos de variables monolíticos que lo contenían todo. Ahora las plantillas pueden componer múltiples grupos de variables, y esta versión resuelve numerosos errores en el manejo de variables: serialización, precedencia, propagación y ciclo de vida de las variables de encuesta.
Omitir la instalación de galaxy
Antes de ejecutar un playbook, Semaphore ejecuta un paso ansible-galaxy install para descargar los roles y colecciones declarados en tu requirements.yml. En muchas configuraciones este paso es innecesario: las dependencias ya están incluidas en la imagen del runner, incorporadas en el repositorio o servidas desde un mirror interno. Ejecutarlo en cada tarea solo añade latencia — y en entornos aislados sin acceso a internet falla directamente.
Esta versión añade la opción Omitir la instalación de galaxy a la configuración de la plantilla de tarea. Cuando está habilitada, Semaphore omite el paso de preparación ansible-galaxy install y pasa directamente a ejecutar el playbook. Esto acelera el inicio de las tareas y elimina la dependencia estricta del acceso a Ansible Galaxy y Git en tiempo de ejecución, lo que resulta especialmente útil para runners sin conexión y preaprovisionados.

