Saltar al contenido principal

Plantillas de tareas

Una plantilla de tareas define qué ejecutar y cómo: la aplicación, el repositorio y el archivo que se ejecuta, el inventario, los grupos de variables, las credenciales y las opciones que un usuario puede cambiar al iniciar una tarea. Cada tarea se crea a partir de una plantilla.

Las plantillas admiten las siguientes aplicaciones:

Los administradores pueden habilitar o deshabilitar aplicaciones y añadir las suyas propias; consulte Aplicaciones.

Lista de plantillas​

La sección Plantillas de tareas muestra todas las plantillas del proyecto.

Lista de plantillas

ColumnaContenido
NombreNombre de la plantilla con el icono de la aplicación. El botón de reproducción inicia una nueva tarea.
VersiónLa última versión compilada en las plantillas de compilación y despliegue; en los demás casos, el icono del resultado de la última tarea.
EstadoDistintivo de estado de la última tarea, o Sin lanzar.
Última tareaNúmero de la última tarea y quién la inició.
PlaybookEl archivo que ejecuta la plantilla.
Inventario, Grupos de variables, RepositorioRecursos asociados a la plantilla.

Las pestañas situadas sobre la lista son vistas: grupos de plantillas con nombre. El icono del engranaje de la esquina superior derecha le permite elegir qué columnas se muestran. Haga clic en la flecha situada a la izquierda de una fila para desplegar las últimas tareas de esa plantilla.

Fila de plantilla desplegada

Página de la plantilla​

Haga clic en el nombre de una plantilla para abrir su página. El botón de la esquina superior derecha inicia una tarea (Run, Build o Deploy, según el tipo); Stop all detiene todas las tareas en ejecución o en cola de la plantilla.

PestañaContenido
TareasTareas de esta plantilla, con un botón de reejecución en cada fila.
DetallesEl playbook, el tipo, el inventario, los grupos de variables y el repositorio, además del gráfico de estado de las tareas con los mismos filtros que Estadísticas.
Espacios de trabajoSolo en las plantillas de Terraform, OpenTofu y Terragrunt: la lista de espacios de trabajo; consulte Espacios de trabajo.

Detalles de la plantilla

Tipos de plantilla​

TipoFinalidad
TaskUna ejecución simple. Es el tipo predeterminado.
BuildProduce un artefacto y le asigna una versión autoincrementada.
DeployDespliega una versión producida por una plantilla de compilación.

Las plantillas de compilación y despliegue, y las semaphore_vars que pasan a los playbooks, se describen en Plantillas de compilación y despliegue.

Formulario de la plantilla​

Los usuarios con el rol Manager o superior pueden crear y editar plantillas con Nueva plantilla y el icono del lápiz. El formulario se organiza en los siguientes grupos. Los campos marcados con el nombre de una aplicación solo aparecen para esa aplicación.

Campos comunes​

CampoDescripción
NombreObligatorio. Nombre de la plantilla.
DescripciónTexto opcional que se muestra bajo el nombre.
AplicaciónAplicación que se ejecutará.
RepositorioRepositorio con el playbook o el script; consulte Repositorios.
RamaRama de Git que se descargará. Vacío significa la rama configurada en el repositorio. Desactivado para un repositorio monorepo, que se descarga una sola vez para todas las plantillas.
Nombre del archivo del playbook o scriptRuta al archivo relativa a la raíz del repositorio. En las aplicaciones de Terraform: el subdirectorio con la configuración.
Directorio de trabajo distintoEjecutar la herramienta desde otro directorio del repositorio.
InventarioInventario de Ansible, o un espacio de trabajo en las aplicaciones de Terraform.
Grupos de variablesUno o varios grupos de variables cuyas variables y secretos se inyectan en la tarea; consulte Grupos de variables.
Contraseña de vault (Ansible)Claves usadas para desbloquear Ansible Vault; consulte Varias contraseñas de vault.
VistaEn qué pestaña de vista se muestra la plantilla.
CLI argsArgumentos de línea de comandos adicionales como array JSON, por ejemplo ["-vvv"].

Campos específicos del tipo​

CampoTipoDescripción
Versión inicialBuildLa primera versión que se asignará, por ejemplo 1.0.0.
Plantilla de compilaciónDeployLa plantilla de compilación cuyos artefactos despliega esta plantilla.
AutorunDeployIniciar un despliegue automáticamente después de cada compilación correcta.

Opciones avanzadas​

CampoDescripción
Permitir tareas paralelasPermitir que varias tareas de esta plantilla se ejecuten a la vez; consulte Tareas paralelas.
Alertas, Enviar si hay éxito, Enviar si hay errorSi se envían notificaciones de las tareas de esta plantilla y con qué resultados. Las notificaciones también requieren la opción Permitir alertas para este proyecto en los ajustes del proyecto.
Etiqueta de runner (Pro)Ejecutar las tareas solo en los runners que tengan esta etiqueta; consulte Runners del proyecto.
Imagen del ejecutorImagen de contenedor para los runners de Docker y Kubernetes; consulte Imagen del ejecutor.
Emitir JWT al ejecutor de la tarea, Audiencia del JWT, TTL del JWTProporcionar a la tarea un token firmado; consulte JWT de tareas.
Ejecutar la tarea automáticamente si se encuentra un nuevo commit de gitConsultar el repositorio en el intervalo indicado e iniciar una tarea cuando la rama avance.
Variables de encuestaDatos que el usuario rellena al iniciar una tarea; consulte Variables de encuesta.

Solicitudes​

Las solicitudes son casillas de verificación que permiten al usuario cambiar opciones integradas en el cuadro de diálogo Nueva tarea: rama, inventario, argumentos de la CLI y, en el caso de Ansible, limit, tags, skip tags, nivel de depuración e instalación de Galaxy. Consulte Solicitudes.

En un repositorio monorepo la solicitud Rama está desactivada: todas las plantillas de ese repositorio se ejecutan en una única copia compartida, por lo que una tarea no puede cambiarla a otra rama o commit. Pase el cursor sobre el campo desactivado para ver el motivo.

Formulario de plantilla en un repositorio monorepo: el campo Rama y la solicitud Rama están desactivados

Opciones de la aplicación​

  • Ansible: opciones de limit, tags, skip tags e instalación de Galaxy; consulte Ansible.
  • Terraform/OpenTofu/Terragrunt: aprobación automática y sustitución del backend; consulte Terraform/OpenTofu y Backend HTTP.

Tareas paralelas​

De forma predeterminada, las tareas de una misma plantilla se ejecutan de forma secuencial. Para permitir ejecuciones simultáneas de la misma plantilla, habilite la opción «Permitir tareas paralelas» en los ajustes de la plantilla.

Imagen del ejecutor (runners de Docker y Kubernetes)​

Cuando un runner del proyecto usa el ejecutor Docker (Pro) o Kubernetes (Enterprise), cada tarea se ejecuta normalmente en la imagen de trabajo predeterminada configurada en el runner (por ejemplo, semaphoreui/job:latest). Puede sustituir esa imagen en cada plantilla.

  1. Abra los ajustes de la plantilla
  2. Establezca Imagen del ejecutor con la referencia de la imagen de contenedor (por ejemplo, my-registry/ansible:2.16 o semaphoreui/job:latest)
  3. Guarde la plantilla

Comportamiento:

  • Solo los ejecutores de runner Docker y Kubernetes tienen en cuenta este campo; el ejecutor local lo ignora
  • Deje el campo vacío para usar la imagen predeterminada del runner definida en runner.executor.docker.image o runner.executor.k8s.image
  • Vaciar el campo en la interfaz elimina la sustitución

Casos de uso:

  • Plantillas que necesitan un conjunto de herramientas diferente (una versión antigua de Ansible, una versión concreta de Terraform, paquetes del sistema adicionales incluidos en una imagen personalizada)
  • Imágenes aisladas para plantillas sensibles desde el punto de vista de la seguridad, sin cambiar el valor predeterminado de todo el runner

Consulte Configuración del runner para los ajustes de la imagen predeterminada y Runners del proyecto para la configuración del ejecutor.