Saltar al contenido principal

Qué es Semaphore

Semaphore UI es una interfaz web autoalojada y una API REST para ejecutar la automatización que ya tienes. La apuntas a un repositorio Git que contiene tus playbooks de Ansible, configuraciones de Terraform o scripts de shell, le indicas qué credenciales y hosts debe usar, y se convierte en el único lugar donde tu equipo ejecuta esa automatización, guarda los secretos que necesita y mantiene un registro de cada ejecución.

Puedes ejecutar tareas de forma individual o combinarlas en un único pipeline con Workflows (Pro), conectando compilaciones, pruebas, despliegues y automatización de infraestructura.

Semaphore no sustituye a Ansible, Terraform ni a tus scripts. Los ejecuta, en un servidor en lugar de en el portátil de alguien.

El problema que resuelve​

La automatización suele empezar en una estación de trabajo. Un ingeniero tiene el playbook, el inventario, la clave SSH y la versión correcta de Ansible instalada. Eso funciona hasta que una segunda persona necesita ejecutar lo mismo, o hasta que alguien pregunta qué cambió en un host el martes pasado.

Semaphore traslada la ejecución a un servidor compartido y añade las piezas que faltaban:

Pieza que faltaQué aporta Semaphore
Todo el mundo necesita las herramientas instaladasLas tiene un servidor (o un runner); los usuarios solo necesitan un navegador.
Las credenciales se copian entre portátilesUn almacén de claves cifrado que entrega los secretos a la ejecución, nunca al usuario.
No hay registro de quién ejecutó quéCada tarea conserva su salida, su estado de salida, el usuario y la hora.
Nadie debería tener root para ejecutar un playbookLos roles deciden quién puede ejecutar, editar o solo observar.
Las ejecuciones ocurren cuando alguien se acuerdaLos horarios, los webhooks y las llamadas a la API las inician.

A quién va dirigido​

  • Equipos de infraestructura y plataforma que ya usan Ansible o Terraform y quieren que sus compañeros lo ejecuten sin repartir credenciales de producción.
  • Equipos que crean pipelines de CI/CD y quieren conectar tareas de compilación, pruebas y despliegue mediante flujos de trabajo, junto con trabajos operativos programados y bajo demanda.
  • Equipos con una plataforma de CI/CD que quieren mantener las ejecuciones operativas — reinicios, despliegues, renovaciones de certificados — fuera del sistema de compilación y visibles para personas que no leen YAML de pipelines.

Semaphore es autoalojado. No hay versión SaaS: ejecutas el binario o el contenedor en tu propia infraestructura, y tus secretos nunca salen de ella.

Qué ejecuta​

Cada plantilla de tarea elige una aplicación:

Las tareas se ejecutan en el propio servidor o en runners situados cerca de los sistemas que gestionan.

Workflows (Pro) conecta plantillas de tareas en un pipeline mediante un editor visual. Cada paso puede ejecutar una aplicación diferente: por ejemplo, compilar y probar código fuente con scripts de shell, aprovisionar infraestructura con Terraform y después desplegar con Ansible. Puedes añadir pasos de aprobación, pausas programadas y ramas que se ejecutan en caso de éxito o fallo. Semaphore inicia las tareas posteriores automáticamente cuando se cumplen sus condiciones.

Cuándo no usarlo​

Conocer los límites ahorra tiempo después.

  • Sustituir a Ansible o Terraform. Semaphore no tiene motor de ejecución propio. Si tu playbook no funciona desde una shell, no funcionará desde Semaphore.
  • Actuar como CMDB. Los inventarios son los inventarios que necesitan tus ejecuciones, no una fuente de verdad sobre tu parque. Genéralos desde tu fuente real con un inventario dinámico.
  • Ser el gestor de secretos de tu organización. Los secretos se cifran en reposo y están diseñados para que los usen las tareas, no para que las personas los lean. Si ya ejecutas HashiCorp Vault u otro almacén, conéctalo en lugar de copiar los secretos.
  • Ejecutar un servicio de un solo nodo donde cualquier caída sea inaceptable. Varios nodos activos requieren alta disponibilidad, que es una función Enterprise y necesita PostgreSQL o MySQL más Redis.

Qué sigue​