Zum Hauptinhalt springen

Task Templates

Ein Task Template legt fest, was und wie ausgeführt wird: die Anwendung, das Repository und die auszuführende Datei, das Inventory, die Variable Groups, die Zugangsdaten und die Optionen, die ein Benutzer beim Starten eines Tasks ändern darf. Jeder Task wird aus einem Task Template erstellt.

Task Templates unterstützen die folgenden Anwendungen:

Administratoren können Anwendungen aktivieren oder deaktivieren und eigene hinzufügen, siehe Apps.

Liste der Task Templates​

Der Bereich Task Templates listet alle Task Templates des Projekts auf.

Liste der Task Templates

SpalteInhalt
NameName des Task Template mit dem Symbol der Anwendung. Die Play-Schaltfläche startet einen neuen Task.
VersionDie neueste Build-Version bei Build- und Deploy-Task-Templates, andernfalls das Ergebnissymbol des letzten Tasks.
StatusStatus-Badge des letzten Tasks oder Not launched.
Last TaskNummer des letzten Tasks und wer ihn gestartet hat.
PlaybookDie Datei, die das Task Template ausführt.
Inventory, Variable Groups, RepositoryRessourcen, die dem Task Template zugeordnet sind.

Die Tabs über der Liste sind Views: benannte Gruppen von Task Templates. Über das Zahnradsymbol in der oberen rechten Ecke wählen Sie aus, welche Spalten angezeigt werden. Klicken Sie auf den Pfeil links in einer Zeile, um die neuesten Tasks dieses Task Template aufzuklappen.

Aufgeklappte Zeile eines Task Template

Seite des Task Template​

Klicken Sie auf den Namen eines Task Template, um seine Seite zu öffnen. Die Schaltfläche in der oberen rechten Ecke startet einen Task (Run, Build oder Deploy, je nach Typ), Stop all stoppt jeden laufenden oder wartenden Task des Task Template.

TabInhalt
TasksTasks dieses Task Template mit einer Rerun-Schaltfläche in jeder Zeile.
DetailsDas Playbook, der Typ, das Inventory, die Variable Groups und das Repository sowie das Task-Status-Diagramm mit denselben Filtern wie Stats.
WorkspacesNur bei Terraform-, OpenTofu- und Terragrunt-Task-Templates: die Liste der Workspaces, siehe Workspaces.

Details eines Task Template

Typen von Task Templates​

TypZweck
TaskEine einfache Ausführung. Der Standardtyp.
BuildErzeugt ein Artefakt und weist ihm eine automatisch hochgezählte Version zu.
DeployStellt eine von einem Build-Task-Template erzeugte Version bereit.

Build- und Deploy-Task-Templates sowie die semaphore_vars, die sie an Playbooks übergeben, sind unter Build- und Deploy-Task-Templates beschrieben.

Formular des Task Template​

Benutzer mit der Rolle Manager oder höher können Task Templates über New Template und das Stiftsymbol erstellen und bearbeiten. Das Formular ist in die folgenden Gruppen unterteilt. Felder, die mit einem Anwendungsnamen markiert sind, erscheinen nur für diese Anwendung.

Allgemeine Felder​

FeldBeschreibung
NameErforderlich. Name des Task Template.
DescriptionOptionaler Text, der unter dem Namen angezeigt wird.
AppAnwendung, die ausgeführt wird.
RepositoryRepository mit dem Playbook oder Skript, siehe Repositories.
BranchGit-Branch, der ausgecheckt wird. Leer bedeutet den im Repository konfigurierten Branch. Deaktiviert für ein Monorepo-Repository, das einmal für alle Task Templates ausgecheckt wird.
Playbook / Script filenamePfad zur Datei relativ zum Repository-Stammverzeichnis. Bei Terraform-Apps: das Unterverzeichnis mit der Konfiguration.
Different working directoryDas Werkzeug aus einem anderen Verzeichnis des Repositorys ausführen.
InventoryAnsible-Inventory oder ein Workspace bei Terraform-Apps.
Variable GroupsEine oder mehrere Variable Groups, deren Variablen und Secrets in den Task eingefügt werden, siehe Variable Groups.
Vault password (Ansible)Schlüssel zum Entsperren von Ansible Vault, siehe Mehrere Vault-Passwörter.
ViewAuf welchem View-Tab das Task Template erscheint.
CLI argsZusätzliche Befehlszeilenargumente als JSON-Array, zum Beispiel ["-vvv"].

Typspezifische Felder​

FeldTypBeschreibung
Start VersionBuildDie erste zu vergebende Version, zum Beispiel 1.0.0.
Build TemplateDeployDas Build-Task-Template, dessen Artefakte dieses Task Template bereitstellt.
AutorunDeployEin Deploy automatisch nach jedem erfolgreichen Build starten.

Erweiterte Optionen​

FeldBeschreibung
Allow parallel tasksMehrere Tasks dieses Task Template gleichzeitig laufen lassen, siehe Parallele Tasks.
Alerts, Send on success, Send on errorOb Benachrichtigungen für Tasks dieses Task Template gesendet werden und bei welchen Ergebnissen. Benachrichtigungen erfordern außerdem Allow alerts for this project in den Projekteinstellungen.
Runner tag (Pro)Tasks nur auf Runnern mit diesem Tag ausführen, siehe Projekt-Runner.
Executor imageContainer-Image für Docker- und Kubernetes-Runner, siehe Executor-Image.
Issue JWT to task runner, JWT audience, JWT TTLDem Task ein signiertes Token geben, siehe Task-JWTs.
Auto-run task if new git commit have been foundDas Repository im angegebenen Intervall abfragen und einen Task starten, wenn sich der Branch bewegt.
Survey variablesEingaben, die der Benutzer beim Starten eines Tasks ausfüllt, siehe Survey-Variablen.

Prompts​

Prompts sind Kontrollkästchen, mit denen der Benutzer im Dialog für einen neuen Task eingebaute Optionen ändern kann: Branch, Inventory, CLI-Argumente und, bei Ansible, Limit, Tags, Skip-Tags, Debug-Level und Galaxy-Installation. Siehe Prompts.

Bei einem Monorepo-Repository ist der Branch-Prompt deaktiviert: Jedes Task Template eines solchen Repositorys läuft in einem gemeinsamen Checkout, daher kann ein Task ihn nicht auf einen anderen Branch oder Commit umschalten. Fahren Sie mit der Maus über das deaktivierte Feld, um den Grund zu sehen.

Task-Template-Formular bei einem Monorepo-Repository: das Feld Branch und der Branch-Prompt sind deaktiviert

Anwendungsoptionen​

  • Ansible: Limit, Tags, Skip-Tags und Optionen für die Galaxy-Installation, siehe Ansible.
  • Terraform/OpenTofu/Terragrunt: Auto Approve und Backend-Überschreibung, siehe Terraform/OpenTofu und HTTP-Backend.

Parallele Tasks​

Standardmäßig werden Tasks desselben Task Template nacheinander ausgeführt. Um gleichzeitige Läufe desselben Task Template zu erlauben, aktivieren Sie in den Einstellungen des Task Template die Option „Allow parallel tasks“.

Executor-Image (Docker- und Kubernetes-Runner)​

Wenn ein Projekt-Runner den Docker- (Pro) oder Kubernetes-Executor (Enterprise) verwendet, läuft jeder Task normalerweise im auf dem Runner konfigurierten Standard-Job-Image (zum Beispiel semaphoreui/job:latest). Sie können dieses Image pro Task Template überschreiben.

  1. Öffnen Sie die Einstellungen des Task Template
  2. Setzen Sie Executor image auf die Referenz des Container-Images (zum Beispiel my-registry/ansible:2.16 oder semaphoreui/job:latest)
  3. Speichern Sie das Task Template

Verhalten:

  • Nur die Docker- und Kubernetes-Runner-Executoren berücksichtigen dieses Feld; der lokale Executor ignoriert es
  • Lassen Sie das Feld leer, um das Standard-Image des Runners aus runner.executor.docker.image oder runner.executor.k8s.image zu verwenden
  • Das Leeren des Feldes in der Oberfläche entfernt die Überschreibung

Anwendungsfälle:

  • Task Templates, die eine andere Toolchain benötigen (älteres Ansible, eine bestimmte Terraform-Version, zusätzliche OS-Pakete in einem eigenen Image)
  • Isolierte Images für sicherheitskritische Task Templates, ohne den Runner-weiten Standard zu ändern

Siehe Runner-Konfiguration für die Standard-Image-Einstellungen und Projekt-Runner für die Einrichtung des Executors.