Passa al contenuto principale

Task Template

Un Task Template definisce cosa eseguire e come: l'applicazione, il Repository e il file da eseguire, l'Inventory, i Variable Group, le credenziali e le opzioni che un utente può modificare all'avvio di un Task. Ogni Task viene creato a partire da un Task Template.

I Task Template supportano le seguenti applicazioni:

Gli amministratori possono abilitare o disabilitare le applicazioni e aggiungerne di proprie, vedere Applicazioni.

Elenco dei Task Template​

La sezione Task Templates elenca tutti i Task Template del Project.

Elenco dei Task Template

ColonnaContenuto
NameNome del Task Template con l'icona dell'applicazione. Il pulsante play avvia un nuovo Task.
VersionL'ultima versione di build per i Task Template di build e deploy, altrimenti l'icona del risultato dell'ultimo Task.
StatusBadge dello stato dell'ultimo Task, oppure Not launched.
Last TaskNumero dell'ultimo Task e chi lo ha avviato.
PlaybookIl file eseguito dal Task Template.
Inventory, Variable Groups, RepositoryLe risorse associate al Task Template.

Le schede sopra l'elenco sono le viste: gruppi di Task Template con un nome. L'icona a forma di ingranaggio nell'angolo in alto a destra consente di scegliere quali colonne mostrare. Fare clic sulla freccia a sinistra di una riga per espandere gli ultimi Task di quel Task Template.

Riga del Task Template espansa

Pagina del Task Template​

Fare clic sul nome di un Task Template per aprirne la pagina. Il pulsante nell'angolo in alto a destra avvia un Task (Run, Build oppure Deploy a seconda del tipo), Stop all interrompe tutti i Task in esecuzione o in coda del Task Template.

SchedaContenuto
TasksI Task di questo Task Template, con un pulsante di riesecuzione in ogni riga.
DetailsIl playbook, il tipo, l'Inventory, i Variable Group e il Repository, oltre al grafico degli stati dei Task con gli stessi filtri di Stats.
WorkspacesSolo per i Task Template Terraform, OpenTofu e Terragrunt: l'elenco dei workspace, vedere Workspace.

Dettagli del Task Template

Tipi di Task Template​

TipoScopo
TaskUna semplice esecuzione. È il tipo predefinito.
BuildProduce un artefatto e gli assegna una versione incrementata automaticamente.
DeployDistribuisce una versione prodotta da un Task Template di build.

I Task Template di build e deploy e la variabile semaphore_vars che passano ai playbook sono descritti in Task Template di build e deploy.

Modulo del Task Template​

Gli utenti con il ruolo Manager o superiore possono creare e modificare i Task Template tramite New Template e l'icona a forma di matita. Il modulo è organizzato nei gruppi seguenti. I campi contrassegnati con il nome di un'applicazione compaiono solo per quell'applicazione.

Campi comuni​

CampoDescrizione
NameObbligatorio. Nome del Task Template.
DescriptionTesto facoltativo mostrato sotto il nome.
AppApplicazione da eseguire.
RepositoryRepository con il playbook o lo script, vedere Repository.
BranchBranch Git da estrarre. Se vuoto, viene utilizzato il branch configurato nel Repository. Disabilitato per un Repository monorepo, che viene estratto una sola volta per tutti i Task Template.
Playbook / Script filenamePercorso del file relativo alla radice del Repository. Per le App Terraform: la sottodirectory che contiene la configurazione.
Different working directoryEsegue lo strumento da un'altra directory del Repository.
InventoryInventory di Ansible, oppure un workspace per le App Terraform.
Variable GroupsUno o più Variable Group le cui variabili e segreti vengono iniettati nel Task, vedere Variable Group.
Vault password (Ansible)Chiavi utilizzate per sbloccare Ansible Vault, vedere Più password Vault.
ViewIn quale scheda di vista viene mostrato il Task Template.
CLI argsArgomenti aggiuntivi della riga di comando come array JSON, ad esempio ["-vvv"].

Campi specifici del tipo​

CampoTipoDescrizione
Start VersionBuildLa prima versione da assegnare, ad esempio 1.0.0.
Build TemplateDeployIl Task Template di build i cui artefatti vengono distribuiti da questo Task Template.
AutorunDeployAvvia automaticamente un deploy dopo ogni build riuscita.

Opzioni avanzate​

CampoDescrizione
Allow parallel tasksConsente l'esecuzione contemporanea di più Task di questo Task Template, vedere Task paralleli.
Alerts, Send on success, Send on errorIndicano se vengono inviate notifiche per i Task di questo Task Template e per quali risultati. Le notifiche richiedono inoltre l'opzione Allow alerts for this project nelle impostazioni del Project.
Runner tag (Pro)Esegue i Task solo sui Runner con questo tag, vedere Runner del Project.
Executor imageImmagine del container per i Runner Docker e Kubernetes, vedere Immagine dell'executor.
Issue JWT to task runner, JWT audience, JWT TTLAssegna al Task un token firmato, vedere JWT dei Task.
Auto-run task if new git commit have been foundInterroga il Repository all'intervallo indicato e avvia un Task quando il branch avanza.
Survey variablesInput che l'utente compila all'avvio di un Task, vedere Variabili di survey.

Prompt​

I prompt sono caselle di controllo che consentono all'utente di modificare le opzioni integrate nella finestra di dialogo New Task: branch, Inventory, argomenti CLI e, per Ansible, limit, tags, skip tags, livello di debug e installazione Galaxy. Vedere Prompt.

Per un Repository monorepo il prompt Branch è disabilitato: ogni Task Template di tale Repository viene eseguito in un unico checkout condiviso, quindi un Task non può passare a un altro branch o commit. Passare il mouse sul campo disabilitato per vederne il motivo.

Modulo del Task Template su un Repository monorepo: il campo Branch e il prompt Branch sono disabilitati

Opzioni delle applicazioni​

  • Ansible: limit, tags, skip tags e opzioni di installazione Galaxy, vedere Ansible.
  • Terraform/OpenTofu/Terragrunt: auto approve e override del backend, vedere Terraform/OpenTofu e Backend HTTP.

Task paralleli​

Per impostazione predefinita, i Task dello stesso Task Template vengono eseguiti in sequenza. Per consentire esecuzioni concorrenti dello stesso Task Template, abilitare l'opzione "Allow parallel tasks" nelle impostazioni del Task Template.

Immagine dell'executor (Runner Docker e Kubernetes)​

Quando un Runner di Project utilizza l'executor Docker (Pro) o Kubernetes (Enterprise), normalmente ogni Task viene eseguito nell'immagine di job predefinita configurata sul Runner (ad esempio semaphoreui/job:latest). È possibile sovrascrivere quell'immagine per singolo Task Template.

  1. Aprire le impostazioni del Task Template
  2. Impostare Executor image con il riferimento all'immagine del container (ad esempio my-registry/ansible:2.16 oppure semaphoreui/job:latest)
  3. Salvare il Task Template

Comportamento:

  • Solo gli executor Runner Docker e Kubernetes tengono conto di questo campo; l'executor local lo ignora
  • Lasciare il campo vuoto per utilizzare l'immagine predefinita del Runner da runner.executor.docker.image oppure runner.executor.k8s.image
  • Svuotando il campo nell'interfaccia si rimuove l'override

Casi d'uso:

  • Task Template che necessitano di una toolchain differente (una versione più vecchia di Ansible, una versione specifica di Terraform, pacchetti di sistema aggiuntivi inclusi in un'immagine personalizzata)
  • Immagini isolate per Task Template sensibili dal punto di vista della sicurezza, senza modificare il valore predefinito per l'intero Runner

Vedere Configurazione del Runner per le impostazioni delle immagini predefinite e Runner del Project per la configurazione degli executor.