Passa al contenuto principale

Concetti fondamentali

Semaphore ha un'idea centrale: un task template raccoglie tutto ciò che serve a un'esecuzione, e avviarlo produce un task. Imparare dove si configura ciascun pezzo di quel "tutto" è gran parte dell'imparare il prodotto.

Il modello a oggetti

I progetti contengono tutto

Un progetto è l'unità di isolamento. Repository, chiavi, inventory, gruppi di variabili, template e cronologia dei task appartengono a un solo progetto, e così vale per l'appartenenza al team. Due progetti non condividono nulla, tranne il server e i suoi utenti: è questo che rende il progetto il confine giusto tra team, ambienti o clienti.

Le risorse descrivono gli input

Esistono quattro tipi di risorsa, perché lo stesso valore possa essere riusato da molti template e modificato in un solo punto:

  • Un repository è il luogo in cui vive il playbook o lo script.
  • Il Key Store contiene le chiavi SSH, le credenziali e i token usati per raggiungere il repository e gli host di destinazione.
  • Un inventory elenca gli host a cui un'esecuzione si rivolge e come connettersi a essi.
  • Un gruppo di variabili porta variabili e segreti nell'ambiente dell'esecuzione.

I template definiscono l'esecuzione

Un task template sceglie un'applicazione (Ansible, Terraform, uno script), un repository, il playbook o il punto di ingresso al suo interno e l'inventory, il gruppo di variabili e le chiavi da usare. Decide inoltre che cosa può cambiare chi avvia il task: le variabili di survey trasformano un template in un modulo, mentre i prompt permettono all'utente di sovrascrivere branch, inventory o argomenti aggiuntivi.

I task sono le esecuzioni

Avviare un template crea un task. Il task ha un proprio log, stato, durata e il nome di chi lo ha avviato, e questa registrazione resta anche dopo la fine dell'esecuzione. I task si avviano dalla UI, da una pianificazione, da un webhook di integrazione, dall' API o da un altro template all'interno di un workflow.

Glossario

TermineSignificato
Access keyUna voce del Key Store: una chiave SSH, una coppia utente e password oppure un token. La sua parte segreta è cifrata nel database.
AlertUna notifica inviata quando un task raggiunge un determinato stato. I canali si configurano sul server, poi si abilitano per progetto e per template.
AppLo strumento che un template esegue: Ansible, Terraform, OpenTofu, Terragrunt, Bash, PowerShell o Python.
Build templateUn tipo di template che produce un artefatto versionato; ogni esecuzione incrementa la versione.
Deploy templateUn tipo di template collegato a un build template; avviandolo ti viene chiesto quale versione di build rilasciare.
ExecutorIl modo in cui un runner avvia un job: come processo locale, in un container Docker o in un Pod Kubernetes.
IntegrationUn webhook in ingresso che avvia un template quando un sistema esterno lo richiama.
InventoryGli host a cui un task si rivolge, come testo statico, file nel repository o script di inventory dinamico.
Key StoreLa raccolta di access key propria di ciascun progetto.
ProjectIl contenitore di primo livello: risorse, template, cronologia dei task e appartenenza al team.
RoleCiò che un membro può fare all'interno di un progetto. I ruoli predefiniti sono Owner, Manager, Task Runner e Guest.
RunnerUn processo separato che esegue i task per conto del server, invece che il server stesso.
ScheduleUn'espressione cron che avvia un template senza l'intervento di una persona.
Secret storageUn sistema esterno, come HashiCorp Vault, che conserva i valori segreti al posto del database di Semaphore.
Survey variableUn campo che il template definisce e che l'utente compila all'avvio di un task; diventa una variabile per l'esecuzione.
TaskUna singola esecuzione di un template, con il suo log, il suo stato e il suo autore.
Task templateLa definizione riutilizzabile di che cosa eseguire e con che cosa. Spesso chiamato semplicemente "template".
Variable groupUn insieme denominato di variabili e segreti passati all'esecuzione. Chiamato Environment nelle versioni precedenti e nell'API.
ViewUna scheda che raggruppa un sottoinsieme dei template di un progetto nell'elenco dei template.
WorkflowUn grafo di template eseguiti in sequenza, con ramificazioni, approvazioni e attese. È una funzionalità Pro.

Prossimi passi

  • Primi passi — metti in pratica i concetti nell'ordine giusto.
  • Guida utente — una pagina per concetto, con tutti i campi.
  • Architettura — come server, database e runner si incastrano.