Pular para o conteúdo principal

Modelos de Tarefa

Um modelo de tarefa define o que executar e como: a aplicação, o repositório e o arquivo a ser executado, o inventário, os grupos de variáveis, as credenciais e as opções que um usuário pode alterar ao iniciar uma tarefa. Toda tarefa é criada a partir de um modelo.

Os modelos suportam as seguintes aplicações:

Os administradores podem ativar ou desativar aplicações e adicionar as suas próprias, consulte Aplicações.

Lista de modelos​

A seção Modelos de Tarefa lista todos os modelos do projeto.

Lista de modelos

ColunaConteúdo
NameNome do modelo com o ícone da aplicação. O botão play inicia uma nova tarefa.
VersionA versão mais recente do build para modelos de build e deploy; caso contrário, o ícone de resultado da última tarefa.
StatusSelo de status da última tarefa, ou Not launched.
Last TaskNúmero da última tarefa e quem a iniciou.
PlaybookO arquivo que o modelo executa.
Inventory, Variable Groups, RepositoryRecursos vinculados ao modelo.

As abas acima da lista são visualizações: grupos nomeados de modelos. O ícone de engrenagem no canto superior direito permite escolher quais colunas são exibidas. Clique na seta à esquerda de uma linha para expandir as tarefas mais recentes desse modelo.

Linha de modelo expandida

Página do modelo​

Clique no nome de um modelo para abrir a sua página. O botão no canto superior direito inicia uma tarefa (Run, Build ou Deploy, dependendo do tipo); Stop all interrompe todas as tarefas em execução ou na fila do modelo.

AbaConteúdo
TasksTarefas deste modelo, com um botão de reexecução em cada linha.
DetailsO playbook, o tipo, o inventário, os grupos de variáveis e o repositório, além do gráfico de status das tarefas com os mesmos filtros de Estatísticas.
WorkspacesApenas para modelos Terraform, OpenTofu e Terragrunt: a lista de workspaces, consulte Workspaces.

Detalhes do modelo

Tipos de modelo​

TipoFinalidade
TaskUma execução simples. O tipo padrão.
BuildProduz um artefato e atribui a ele uma versão incrementada automaticamente.
DeployImplanta uma versão produzida por um modelo de build.

Os modelos de build e deploy e as semaphore_vars que eles passam para os playbooks estão descritos em Modelos de build e deploy.

Formulário do modelo​

Usuários com o papel Manager ou superior podem criar e editar modelos com New Template e o ícone de lápis. O formulário está organizado nos grupos a seguir. Os campos marcados com o nome de uma aplicação aparecem somente para essa aplicação.

Campos comuns​

CampoDescrição
NameObrigatório. Nome do modelo.
DescriptionTexto opcional exibido abaixo do nome.
AppAplicação a ser executada.
RepositoryRepositório com o playbook ou o script, consulte Repositórios.
BranchBranch do Git a ser obtido. Vazio significa o branch configurado no repositório. Desativado para um repositório monorepo, que é obtido uma única vez para todos os modelos.
Playbook / Script filenameCaminho para o arquivo relativo à raiz do repositório. Para aplicações Terraform: o subdiretório com a configuração.
Different working directoryExecuta a ferramenta a partir de outro diretório do repositório.
InventoryInventário do Ansible, ou um workspace para aplicações Terraform.
Variable GroupsUm ou mais grupos de variáveis cujas variáveis e segredos são injetados na tarefa, consulte Grupos de Variáveis.
Vault password (Ansible)Chaves usadas para desbloquear o Ansible Vault, consulte Múltiplas senhas de vault.
ViewQual aba de visualização exibe o modelo.
CLI argsArgumentos extras de linha de comando como um array JSON, por exemplo ["-vvv"].

Campos específicos de cada tipo​

CampoTipoDescrição
Start VersionBuildA primeira versão a ser atribuída, por exemplo 1.0.0.
Build TemplateDeployO modelo de build cujos artefatos este modelo implanta.
AutorunDeployInicia um deploy automaticamente após cada build bem-sucedido.

Opções avançadas​

CampoDescrição
Allow parallel tasksPermite que várias tarefas deste modelo sejam executadas ao mesmo tempo, consulte Tarefas paralelas.
Alerts, Send on success, Send on errorDefine se as notificações são enviadas para as tarefas deste modelo e em quais resultados. As notificações também exigem Allow alerts for this project nas configurações do projeto.
Runner tag (Pro)Executa as tarefas apenas em runners com esta tag, consulte Runners do projeto.
Executor imageImagem de contêiner para runners Docker e Kubernetes, consulte Imagem do executor.
Issue JWT to task runner, JWT audience, JWT TTLFornece à tarefa um token assinado, consulte JWTs de tarefa.
Auto-run task if new git commit have been foundConsulta o repositório no intervalo informado e inicia uma tarefa quando o branch avança.
Survey variablesEntradas que o usuário preenche ao iniciar uma tarefa, consulte Variáveis de formulário.

Prompts​

Os prompts são caixas de seleção que permitem ao usuário alterar opções integradas na janela New Task: branch, inventário, argumentos de CLI e, para o Ansible, limit, tags, skip tags, nível de depuração e instalação do Galaxy. Consulte Prompts.

Para um repositório monorepo, o prompt Branch fica desativado: todos os modelos desse repositório são executados em um único checkout compartilhado, portanto uma tarefa não pode alterná-lo para outro branch ou commit. Passe o mouse sobre o campo desativado para ver o motivo.

Formulário do modelo em um repositório monorepo: o campo Branch e o prompt Branch estão desativados

Opções da aplicação​

  • Ansible: opções de limit, tags, skip tags e instalação do Galaxy, consulte Ansible.
  • Terraform/OpenTofu/Terragrunt: auto approve e substituição de backend, consulte Terraform/OpenTofu e Backend HTTP.

Tarefas paralelas​

Por padrão, as tarefas do mesmo modelo são executadas sequencialmente. Para permitir execuções simultâneas do mesmo modelo, ative a opção "Allow parallel tasks" nas configurações do modelo.

Imagem do executor (runners Docker e Kubernetes)​

Quando um runner de projeto usa o executor Docker (Pro) ou Kubernetes (Enterprise), cada tarefa normalmente é executada na imagem de job padrão configurada no runner (por exemplo, semaphoreui/job:latest). Você pode substituir essa imagem por modelo.

  1. Abra as configurações do modelo
  2. Defina Executor image com a referência da imagem de contêiner (por exemplo, my-registry/ansible:2.16 ou semaphoreui/job:latest)
  3. Salve o modelo

Comportamento:

  • Apenas os executores de runner Docker e Kubernetes respeitam este campo; o executor local o ignora
  • Deixe o campo vazio para usar a imagem padrão do runner definida em runner.executor.docker.image ou runner.executor.k8s.image
  • Limpar o campo na interface remove a substituição

Casos de uso:

  • Modelos que precisam de um conjunto de ferramentas diferente (Ansible mais antigo, uma versão específica do Terraform, pacotes extras do SO incluídos em uma imagem personalizada)
  • Imagens isoladas para modelos sensíveis à segurança sem alterar o padrão global do runner

Consulte Configuração do runner para as configurações de imagem padrão e Runners do projeto para a configuração do executor.