Saltar al contenido principal

Conceptos básicos

Semaphore tiene una idea central: una plantilla de tarea reúne todo lo que necesita una ejecución, y al ejecutarla se produce una tarea. Aprender dónde se configura cada pieza de ese "todo" es casi todo lo que hay que aprender del producto.

El modelo de objetos

Los proyectos lo contienen todo

Un proyecto es la unidad de aislamiento. Los repositorios, las claves, los inventarios, los grupos de variables, las plantillas y el historial de tareas pertenecen a un único proyecto, igual que la pertenencia al equipo. Dos proyectos no comparten nada salvo el servidor y sus usuarios, que es lo que hace del proyecto la frontera adecuada entre equipos, entornos o clientes.

Los recursos describen las entradas

Existen cuatro tipos de recurso para que el mismo valor pueda reutilizarse en muchas plantillas y cambiarse en un solo sitio:

  • Un repositorio es donde vive el playbook o el script.
  • El almacén de claves contiene las claves SSH, los inicios de sesión y los tokens que se usan para llegar al repositorio y a los hosts de destino.
  • Un inventario enumera los hosts a los que se dirige una ejecución y cómo conectarse a ellos.
  • Un grupo de variables lleva variables y secretos al entorno de la ejecución.

Las plantillas definen la ejecución

Una plantilla de tarea selecciona una aplicación (Ansible, Terraform, un script), un repositorio, el playbook o punto de entrada dentro de él, y el inventario, el grupo de variables y las claves que debe usar. También decide qué puede cambiar la persona que inicia la tarea: las variables de encuesta convierten una plantilla en un formulario, y las peticiones permiten al usuario sobrescribir la rama, el inventario o los argumentos adicionales.

Las tareas son las ejecuciones

Iniciar una plantilla crea una tarea. La tarea tiene su propio registro, estado, duración y el nombre de quien la inició, y ese registro permanece después de que termine la ejecución. Las tareas se inician desde la interfaz, desde un horario, desde un webhook de integración, desde la API o desde otra plantilla dentro de un flujo de trabajo.

Glosario

TérminoSignificado
Clave de accesoUna entrada del almacén de claves: una clave SSH, un inicio de sesión con contraseña o un token. Su parte secreta se cifra en la base de datos.
AlertaUna notificación enviada cuando una tarea alcanza un estado determinado. Los canales se configuran en el servidor y luego se activan por proyecto y por plantilla.
AppLa herramienta que ejecuta una plantilla: Ansible, Terraform, OpenTofu, Terragrunt, Bash, PowerShell o Python.
Plantilla de compilaciónUn tipo de plantilla que produce un artefacto versionado; cada ejecución incrementa la versión.
Plantilla de despliegueUn tipo de plantilla vinculada a una plantilla de compilación; al iniciarla se pregunta qué versión de compilación se va a desplegar.
EjecutorCómo lanza un trabajo un runner: como proceso local, en un contenedor Docker o en un Pod de Kubernetes.
IntegraciónUn webhook entrante que inicia una plantilla cuando lo llama un sistema externo.
InventarioLos hosts a los que se dirige una tarea, como texto estático, un archivo del repositorio o un script de inventario dinámico.
Almacén de clavesEl conjunto de claves de acceso de cada proyecto.
ProyectoEl contenedor de nivel superior: recursos, plantillas, historial de tareas y pertenencia al equipo.
RolLo que un miembro puede hacer dentro de un proyecto. Los roles integrados son Owner, Manager, Task Runner y Guest.
RunnerUn proceso independiente que ejecuta tareas por cuenta del servidor en lugar de que sea el servidor quien las ejecute.
HorarioUna expresión cron que inicia una plantilla sin intervención de una persona.
Almacenamiento de secretosUn sistema externo, como HashiCorp Vault, que guarda los valores secretos en lugar de la base de datos de Semaphore.
Variable de encuestaUn campo que define la plantilla y que el usuario rellena al iniciar una tarea; se convierte en una variable de la ejecución.
TareaUna ejecución de una plantilla, con su registro, estado y autor.
Plantilla de tareaLa definición reutilizable de qué ejecutar y con qué. A menudo, simplemente "plantilla".
Grupo de variablesUn conjunto con nombre de variables y secretos que se pasa a la ejecución. Se llamaba Environment en versiones anteriores y en la API.
VistaUna pestaña que agrupa un subconjunto de las plantillas de un proyecto en la lista de plantillas.
Flujo de trabajoUn grafo de plantillas ejecutadas en secuencia con bifurcaciones, aprobaciones y esperas. Una función Pro.

Qué sigue