Semaphore v2.17 introduce nuevas funciones y mejoras para la automatización de infraestructura y los equipos DevOps. Esta versión se centra en mejorar la experiencia del desarrollador y en simplificar los flujos de trabajo de infraestructura como código.
Resumen de características clave
-
Nombre de emisor personalizado en la app TOTP
Ahora puedes especificar un nombre de emisor personalizado al registrar Semaphore con una app autenticadora TOTP (Time-based One-Time Password). Esto permite identificar con mayor claridad las cuentas de Semaphore dentro de las apps autenticadoras, mejorando la usabilidad, especialmente para usuarios que gestionan múltiples tokens 2FA.
Más información » -
Leer secretos desde variables de entorno
Ahora puedes vincular un secreto a una variable de entorno.
Más información » -
Tareas programadas de una sola ejecución
Ahora puedes programar una tarea para una fecha y hora específicas (no solo mediante un cron). Se ejecutará solo una vez.
Más información » -
Vistas personalizables
Ahora puedes personalizar las vistas de plantillas con mucha más flexibilidad.
Más información » -
Detener todas las tareas
El botón Stop all te permite detener todas las tareas en ejecución de una plantilla de una vez. Esto es útil cuando necesitas detener rápidamente un despliegue o cancelar trabajos iniciados por error.
Más información » -
Soporte para servidor syslog
Semaphore ahora puede enviar sus logs a un servidor syslog externo, lo que facilita centralizar la recolección de logs e integrarlo con canalizaciones de monitorización y alertas existentes.
Más información » -
Reversión de migraciones de base de datos
Ahora puedes revertir migraciones de base de datos, lo que facilita degradar Semaphore de forma segura si es necesario.
Más información » -
Arrastrar y soltar para variables de encuesta, argumentos CLI, etc.
Ahora puedes reordenar variables de encuesta, argumentos de la CLI y otros elementos de lista mediante arrastrar y soltar.
Más información » -
Exportar e importar proyectos vía CLI
Exporta e importa proyectos desde la línea de comandos para simplificar copias de seguridad, migraciones y configuraciones repetibles entre entornos.
Más información » -
Herramienta CLI para migrar de BoltDB a SQLite/MySQL/Postgres
Un nuevo migrador CLI ayuda a mover los datos de Semaphore desde BoltDB a SQLite, MySQL o Postgres. BoltDB está siendo desaprobado y se eliminará en la v3.0.
Más información » -
Soporte de Devolutions Server (Enterprise)
Las instalaciones Enterprise ahora pueden integrarse con Devolutions Server como backend de secretos, similar a HashiCorp Vault.
Más información » -
Roles personalizados y RBAC ampliado (Enterprise)
Define roles personalizados con permisos a medida para ajustarse al modelo de acceso de tu organización.
Más información » -
Alta disponibilidad active-active (Enterprise)
Ejecuta varias instancias activas de Semaphore detrás de un balanceador, sin primary/standby, para mayor disponibilidad.
Más información » -
Mejoras en el registro (logging)
Los logs ahora incluyen contexto más detallado.
Más información » -
Clave de suscripción mediante variable de entorno (PRO)
Las claves de suscripción PRO ahora pueden proporcionarse mediante una variable de entorno, lo cual es conveniente para despliegues en contenedores y automatizados.
Más información »
Funcionalidades
Nombre de emisor personalizado en la app TOTP
Semaphore v2.17 introduce una nueva opción para personalizar el nombre del emisor que se muestra en las apps autenticadoras TOTP (Time-based One-Time Password).
Propósito:
El nombre del emisor ayuda a los usuarios a identificar qué cuenta en su app autenticadora pertenece a Semaphore, especialmente útil cuando se gestionan cuentas de múltiples organizaciones o entornos.
Cómo configurarlo:
Puedes establecer el nombre del emisor de dos maneras:
-
Variable de entorno
Establece la variable de entorno
SEMAPHORE_TOTP_ISSUERcon el nombre de emisor deseado al iniciar Semaphore.Ejemplo (Docker Compose):
environment: - SEMAPHORE_TOTP_ISSUER=MyCompany SemaphoreEjemplo (Standalone):
SEMAPHORE_TOTP_ISSUER="MyCompany Semaphore" ./semaphore server -
Archivo de configuración
En tu archivo
config.json, establece la siguiente opción dentro de la secciónauth:{ "auth": { "totp": { "issuer": "MyCompany Semaphore" } } }
Precedencia:
Si tanto la variable de entorno como la opción en el archivo de configuración están establecidas, la variable de entorno (SEMAPHORE_TOTP_ISSUER) tiene precedencia.
Valor predeterminado:
Si no se establece, el nombre de emisor predeterminado será Semaphore.
Resultado:
Cuando los usuarios agreguen su cuenta TOTP de Semaphore a una app autenticadora, aparecerá el nombre de emisor seleccionado, lo que facilitará distinguir entre varias cuentas.
Para obtener más detalles sobre todas las variables de entorno disponibles, consulta la documentación de variables de entorno de instalación.
Tareas programadas de una sola ejecución
Semaphore ahora soporta programaciones de una sola ejecución además de las programaciones cron. Utiliza esto cuando necesites que una tarea se ejecute en una fecha y hora específicas y solo una vez.
Casos de uso:
- Ejecutar una tarea de mantenimiento durante una ventana de cambio aprobada
- Iniciar un despliegue puntual o un trabajo de relleno (backfill)
Vistas personalizables
Las vistas de plantilla ahora son más personalizables, lo que te permite adaptar lo que se muestra y cómo se organiza para que coincida mejor con tu flujo de trabajo.
-
Ahora puedes mover la pestaña All a cualquier posición de la barra.
-
Puedes ocultar por completo la pestaña All para los usuarios normales del proyecto.
-
Puedes cambiar la ordenación predeterminada de plantillas para una vista específica.
Las mejoras habituales incluyen:
- Mejor organización de la información relacionada con la plantilla
- Mayor flexibilidad en cómo se dispone el contenido de la vista
Detener todas las tareas
Ahora puedes detener todas las tareas en ejecución de una plantilla con una sola acción. Esto te ayuda a detener rápidamente un despliegue o cancelar trabajos que se iniciaron por accidente.
Soporte para servidor syslog
Semaphore ahora puede reenviar logs a un servidor syslog externo, lo que facilita centralizar la recolección de logs e integrarlo con canalizaciones de monitorización y alertas existentes.
config.json:
{
"syslog": {
"enabled": true,
"network": "udp",
"address": "localhost:514",
"tag": "semaphore"
}
}
Variables de entorno:
export SEMAPHORE_SYSLOG_ENABLED=True
export SEMAPHORE_SYSLOG_NETWORK=udp
export SEMAPHORE_SYSLOG_ADDRESS=localhost:514
export SEMAPHORE_SYSLOG_TAG=semaphore
Reversión de migraciones de base de datos
Las migraciones de base de datos ahora se pueden revertir. Esto hace más seguro recuperarse de un problema durante una actualización y puede simplificar las degradaciones cuando sea necesario.
semaphore migrate --undo-to 2.16
Arrastrar y soltar para variables de encuesta, argumentos CLI, etc.
Ahora puedes reordenar variables de encuesta, argumentos de la CLI y otros elementos de lista mediante arrastrar y soltar, lo que hace que las plantillas sean más fáciles de mantener y revisar.
Exportar e importar proyectos vía CLI
Semaphore ahora soporta la importación automática de proyectos.
El contenedor Docker acepta las variables de entorno SEMAPHORE_IMPORT_PROJECT_FILE y SEMAPHORE_IMPORT_PROJECT_NAME para esto.
Si necesitas importar un proyecto desde la CLI, puedes usar el siguiente comando:
semaphore project import --file /path/to/the/backup.json --project-name "Demo project"
Si no se proporciona el nombre del proyecto, se usará el nombre del proyecto en los metadados del respaldo.
Para importar todos los proyectos desde un directorio, usa el siguiente comando:
semaphore project import --dir /path/to/the/dir
Para exportar un proyecto, puedes usar el siguiente comando:
semaphore project export --project-name "Demo project" --file /path/to/the/backup.json
Si quieres exportar todos los proyectos a un directorio:
semaphore project export --dir /path/to/the/dir
Al combinar este comando con cron, puedes implementar respaldos automáticos de proyectos.
Herramienta CLI para migrar de BoltDB a SQLite/MySQL/Postgres
Un nuevo migrador CLI ayuda a mover datos de Semaphore de BoltDB a SQLite, MySQL o Postgres. BoltDB está siendo desaprobado y se eliminará en la v3.0.
semaphore migrate --from-boltdb /path/to/boltdb/file
Soporte de Devolutions Server (Enterprise)
Las instalaciones Enterprise ahora pueden integrarse con Devolutions Server como backend de secretos, similar a HashiCorp Vault.
Roles personalizados y RBAC ampliado (Enterprise)
La interfaz de Semaphore ahora admite roles personalizados a nivel de proyecto y globales, lo que permite un control de acceso granular para tareas y plantillas. El RBAC se ha ampliado con controles más detallados en los recursos de Semaphore, ayudando a los equipos a aplicar el principio de menor privilegio con mayor precisión.
Los usuarios Enterprise pueden definir roles personalizados con permisos a medida para ajustarse a los requisitos de acceso de la organización.
Los propietarios y administradores de proyecto pueden asignar estos roles a plantillas específicas y otorgarles permisos orientados a ejecutar, ver o administrar tareas.
Alta disponibilidad active-active (Enterprise)
En una configuración estándar de un solo nodo, un proceso de Semaphore lo hace todo: sirve la interfaz web, ejecuta trabajos programados, ejecuta tareas y envía actualizaciones en vivo a los navegadores. Si ese proceso cae, todo se detiene.
Con HA active-active, ejecutas varias instancias idénticas de Semaphore detrás de un balanceador de carga. Todas están completamente activas al mismo tiempo: no hay un “primario” ni un “en espera”. Cualquier nodo puede atender cualquier solicitud, ejecutar cualquier tarea o disparar cualquier programación. Se coordinan mediante una instancia de Redis compartida para evitar interferencias.
Todas las instancias se conectan a los mismos dos backends:
- Base de datos (Postgres o MySQL) — la única fuente de verdad para todos los datos persistentes: proyectos, plantillas, programaciones, historial de tareas, usuarios, etc.
- Redis — la capa de coordinación. Redis cumple tres funciones:
- Bloqueos distribuidos — para evitar que dos nodos ejecuten lo mismo
- Mensajería Pub/Sub — para retransmitir eventos en tiempo real entre nodos
- Estado compartido de la cola de tareas — para que todos los nodos vean la misma cola
{
"ha": {
"enabled": true,
"node_id": "node1",
"redis": {
"addr": "localhost:6379"
}
}
}
Mejoras en el registro (logging)
El registro se ha mejorado para proporcionar más contexto y claridad, ayudándote a depurar fallos y entender qué ocurrió durante una ejecución.
Clave de suscripción mediante variable de entorno (PRO)
Las claves de suscripción PRO ahora pueden proporcionarse mediante una variable de entorno, lo cual es útil para despliegues en contenedores y despliegues impulsados por CI/CD.