Wenn Sie Ihre Pipeline konfigurieren, fügen Sie bestimmte Aufgabentypen hinzu, die die Pipeline für die von Ihnen benötigten Aktionen ausführt. Jeder Aufgabentyp lässt sich in eine andere Anwendung integrieren und aktiviert Ihre Pipeline, während sie Ihre Anwendungen erstellt, testet und bereitstellt.

Egal, ob Sie zur Bereitstellung Artefakte aus einem Repository abrufen, ein Remote-Skript ausführen müssen oder von einem Teammitglied eine Genehmigung für einen Benutzervorgang benötigen, hat Code Stream den geeigneten Aufgabentyp, damit Sie Ihre Pipeline ausführen können!

Code Stream unterstützt das Abbrechen einer Pipeline-Ausführung für verschiedene Arten von Aufgaben. Wenn Sie bei einer Pipeline-Ausführung auf Abbrechen klicken, wechselt die Aufgabe, Phase oder gesamte Pipeline in den Abbruchzustand und die Pipeline-Ausführung wird abgebrochen.

Mit Code Stream können Sie die Pipeline-Ausführung für eine Aufgabe, Phase oder die gesamte Pipeline abbrechen, wenn Sie die folgenden Aufgaben verwenden:
  • Jenkins
  • SSH
  • PowerShell
  • Benutzervorgang
  • Pipeline
  • Cloud-Vorlage
  • vRO
  • POLL

Code Stream gibt das Abbruchverhalten für die folgenden Aufgaben nicht an Drittanbietersysteme weiter: CI, benutzerdefinierte Integration oder Kubernetes. Code Stream markiert die Aufgabe als abgebrochen und beendet sofort das Abrufen des Status, ohne zu warten, bis die Aufgabe abgeschlossen ist. Die Aufgabe kann auf dem Drittanbietersystem abgeschlossen werden oder fehlschlagen, wird aber sofort in Code Stream beendet, wenn Sie auf Abbrechen klicken.

Bevor Sie eine Aufgabe in Ihrer Pipeline verwenden, stellen Sie sicher, dass der entsprechende Endpoint verfügbar ist.

Tabelle 1. Anfordern einer Genehmigung oder Festlegen eines Entscheidungspunkts
Aufgabentyp Funktionsweise Beispiele und Details
Benutzervorgang

Eine Aufgabe des Typs „Benutzervorgang“ ermöglicht eine erforderliche Genehmigung, die steuert, wann eine Pipeline ausgeführt wird und für eine Genehmigung angehalten werden muss.

Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Ausführen einer Pipeline und Anzeigen von Ergebnissen. und Vorgehensweise zum Verwalten des Benutzerzugriffs und der Genehmigungen in Code Stream.

Bedingung

Fügt einen Entscheidungspunkt hinzu, der bestimmt, ob die Pipeline auf der Grundlage von Bedingungsausdrücken weiterhin ausgeführt oder angehalten wird. Wenn die Bedingung „true“ lautet, führt die Pipeline nachfolgende Aufgaben aus. Wenn sie „false“ lautet, wird die Pipeline angehalten.

Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Verwenden von Variablenbindungen in einer Bedingungsaufgabe zum Ausführen oder Anhalten einer Pipeline in Code Stream.

Tabelle 2. Automatisieren der kontinuierlichen Integration und Bereitstellung
Aufgabentyp Funktionsweise Beispiele und Details
Cloud-Vorlage

Stellt eine Automatisierungs-Cloud-Vorlage aus GitHub sowie eine Anwendung bereit und automatisiert die kontinuierliche Integration und kontinuierliche Bereitstellung (CICD) dieser Cloud-Vorlage für Ihre Bereitstellung.

Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Automatisieren der Version einer Anwendung, die von einer YAML-Cloud-Vorlage in Code Stream bereitgestellt wird.

Die Cloud-Vorlagenparameter werden angezeigt, nachdem Sie zuerst Erstellen oder Aktualisieren und dann Cloud-Vorlage und Version ausgewählt haben. Sie können die folgenden Elemente, die Variablenbindungen ermöglichen, zu den Eingabetextbereichen in der Cloud-Vorlagenaufgabe hinzufügen:

  • Ganzzahl
  • Aufzählungszeichenfolge
  • Boolesch
  • Array-Variable

Wenn Sie Variablenbindung in der Eingabe verwenden, beachten Sie die folgenden Ausnahmen. Für Aufzählungen müssen Sie einen Aufzählungswert aus einem festen Satz auswählen. Für boolesche Werte müssen Sie den Wert in den Texteingabebereich eingeben.

Der Cloud-Vorlagenparameter wird in der Cloud-Vorlagenaufgabe angezeigt, wenn eine Cloud-Vorlage in Cloud Assembly Eingabevariablen enthält. Wenn eine Cloud-Vorlage beispielsweise den Eingabetyp Integer aufweist, können Sie die Ganzzahl direkt oder als Variable mithilfe der Variablenbindung eingeben.

CI

Die CI-Aufgabe ermöglicht die kontinuierliche Integration Ihres Codes in Ihre Pipeline, indem ein Docker-Build-Image aus einem Registrierungs-Endpoint abgerufen und in einem Kubernetes-Cluster bereitgestellt wird.

Die CI-Aufgabe zeigt 100 Zeilen des Protokolls als Ausgabe an und 500 Zeilen, wenn Sie die Protokolle herunterladen.

Die CI-Aufgaben erfordern die flüchtigen Ports 32768 bis 61000.

Weitere Informationen hierzu finden Sie unter Planen eines nativen CICD-Builds in Code Stream vor der Verwendung der intelligenten Pipeline-Vorlage.

Benutzerdefiniert

Die Aufgabe „Benutzerdefiniert“ integriert Code Stream in Ihre eigenen Build-, Test- und Bereitstellungstools.

Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Integrieren von eigenen Build-, Test- und Bereitstellungstools mit Code Stream.

Kubernetes

Automatisieren Sie die Bereitstellung Ihrer Softwareanwendungen in Kubernetes-Clustern.

Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Automatisieren der Freigabe einer Anwendung in Code Stream in einem Kubernetes-Cluster.

Pipeline

Verschachtelt eine Pipeline in einer primären Pipeline. Wenn eine Pipeline verschachtelt ist, verhält sie sich in der primären Pipeline wie eine Aufgabe.

Auf der Registerkarte „Aufgabe“ der primären Pipeline können Sie problemlos zur verschachtelten Pipeline navigieren, indem Sie auf den dorthin führenden Link klicken. Die verschachtelte Pipeline wird in einer neuen Browser-Registerkarte geöffnet.

Um verschachtelte Pipelines in Ausführungen zu finden, geben Sie Verschachtelt in den Suchbereich ein.

Tabelle 3. Integrieren von Entwicklungs-, Test-und Bereitstellungsanwendungen
Aufgabentyp Funktion Beispiele und Details
Bamboo

Interagiert mit einem Bamboo-CI-Server, der die Software bei der Vorbereitung für die Bereitstellung kontinuierlich erstellt, testet und integriert sowie Code-Builds auslöst, wenn Entwickler Änderungen übergeben. Macht die vom Bamboo-Build erzeugten Artefakt-Speicherorte verfügbar, sodass die Aufgabe die Parameter für andere Aufgaben ausgeben kann, die für den Build und die Bereitstellung verwendet werden.

Stellen Sie eine Verbindung mit einem Bamboo-Server-Endpoint her und starten Sie einen Bamboo-Build-Plan aus Ihrer Pipeline.

Jenkins

Löst Jenkins-Jobs aus, die Ihren Quellcode erstellen und testen, Testfälle ausführen und benutzerdefinierte Skripts verwenden können.

Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Integrieren von Code Stream in Jenkins.

TFS

Ermöglicht Ihnen, Ihre Pipeline mit Team Foundation Server zu verbinden, um Build-Projekte zu verwalten und aufzurufen, einschließlich konfigurierter Aufträge zum Erstellen und Testen Ihres Codes.

Versionen von Team Foundation Server, die von Code Stream unterstützt werden, finden Sie unter Definition von Endpoints in Code Stream.

vRO

Erweitert den Funktionsumfang von Code Stream, indem vordefinierte oder benutzerdefinierte Workflows in vRealize Orchestrator ausgeführt werden.

Code Stream unterstützt Standardauthentifizierung und tokenbasierte Authentifizierung für vRealize Orchestrator. Code Stream verwendet das API-Token zum Authentifizieren und Validieren des vRealize Orchestrator-Clusters. Mit tokenbasierter Authentifizierung bietet Code Stream Unterstützung für vRealize Orchestrator-Endpoints, die einen Cloud-Erweiterbarkeits-Proxy verwenden. Sie können daher in Code Stream Workflows mit einem vRealize Orchestrator-Endpoint auslösen, der den Cloud-Erweiterbarkeits-Proxy verwendet.

Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Integrieren von Code Stream in vRealize Orchestrator.

Tabelle 4. Integrieren anderer Anwendungen über eine API
Aufgabentyp Funktion Beispiele und Details
REST

Integriert Code Stream mit anderen Anwendungen, die eine REST API verwenden, sodass Sie kontinuierlich miteinander interagierende Softwareanwendungen entwickeln und bereitstellen können.

Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Verwenden einer REST API für die Integration von Code Stream in andere Anwendungen.

Abfrage

Ruft eine REST API auf und fragt sie ab, bis die Pipeline-Aufgabe die Beendigungskriterien erfüllt und abgeschlossen ist.

Ein Code Stream-Administrator kann die Abrufanzahl auf maximal 10000 festlegen. Das Abfrageintervall muss größer oder gleich 60 Sekunden sein.

Wenn Sie das Kontrollkästchen Bei Fehler fortfahren aktivieren und die Anzahl oder das Intervall diese Werte überschreiten, wird die Abfrageaufgabe weiterhin ausgeführt.

POLL Iteration Count: Wird in der Pipeline-Ausführung angezeigt und zeigt an, wie oft die POLL-Aufgabe eine Antwort von der URL angefordert hat. Wenn beispielsweise die POLL-Eingabe 65 lautet und die POLL-Anforderung tatsächlich 4 Mal ausgeführt wurde, wird in der Pipeline-Ausführungsausgabe die Iterationsanzahl „4 (von 65)“ angezeigt.

Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Verwenden einer REST API für die Integration von Code Stream in andere Anwendungen.

Tabelle 5. Ausführen von Remote-Skripts und benutzerdefinierten Skripts
Aufgabentyp Funktionsweise Beispiele und Details
PowerShell

Mit der Aufgabe „PowerShell“ kann Code Stream Skriptbefehle auf einem Remote-Host ausführen. Ein Skript kann beispielsweise Testaufgaben automatisieren und administrative Befehlstypen ausführen.

Das Skript kann remote oder benutzerdefiniert sein. Es kann über HTTP oder HTTPS eine Verbindung herstellen und TLS verwenden.

Auf dem Windows-Host muss der winrm-Dienst konfiguriert sein und für winrm müssen MaxShellsPerUser und MaxMemoryPerShellMB konfiguriert sein.

Um eine PowerShell-Aufgabe ausführen zu können, müssen Sie über eine aktive Sitzung mit dem Remote-Windows-Host verfügen.

Länge der PowerShell-Befehlszeile

Wenn Sie einen base64-PowerShell-Befehl eingeben, beachten Sie, dass Sie die Gesamtlänge des Befehls berechnen müssen.

Die Code Stream-Pipeline codiert und umhüllt einen base64-PowerShell-Befehl in einem anderen Befehl, wodurch die Gesamtlänge des Befehls erhöht wird.

Die maximal zulässige Länge eines winrm-PowerShell-Befehls beträgt 8192 Byte. Der Grenzwert für die Befehlslänge ist für die PowerShell-Aufgabe niedriger, wenn sie verschlüsselt und umhüllt ist. Folglich müssen Sie die Befehlslänge berechnen, bevor Sie den PowerShell-Befehl eingeben.

Der Grenzwert für die Befehlslänge für die Code Stream-PowerShell-Aufgabe richtet sich nach der base64-codierten Länge des ursprünglichen Befehls. Die Länge des Befehls wird wie folgt berechnet.

3 * (length of original command / 4)) - (numberOfPaddingCharacters) + 77 (Length of Write-output command)

Die Länge des Befehls für Code Stream muss unter dem maximalen Grenzwert von 8192 liegen.

Wenn Sie MaxShellsPerUser und MaxMemoryPerShellMB konfigurieren, gilt Folgendes:

  • Der zulässige Wert für MaxShellsPerUser ist 500 für 50 gleichzeitige Pipelines mit fünf PowerShell-Aufgaben für jede Pipeline. Um den Wert festzulegen, führen Sie Folgendes aus: winrm set winrm/config/winrs '@{MaxShellsPerUser="500"}'.
  • Der zulässige Arbeitsspeicherwert für MaxMemoryPerShellMB ist 2048. Um den Wert festzulegen, führen Sie Folgendes aus: winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="2048"}'.

Das Skript schreibt die Ausgabe in eine Antwortdatei, die von einer anderen Pipeline verwendet werden kann.

SSH

Die Aufgabe „SSH“ ermöglicht, dass die Aufgabe „Bash-Shell-Skript“ Skriptbefehle auf einem Remote-Host ausführt. Ein Skript kann beispielsweise Testaufgaben automatisieren und administrative Befehlstypen ausführen.

Das Skript kann remote oder benutzerdefiniert sein. Es kann über HTTP oder HTTPS eine Verbindung herstellen und erfordert einen privaten Schlüssel oder ein Kennwort.

Der SSH-Dienst muss auf dem Linux-Host konfiguriert werden, und die SSHD-Konfiguration MaxSessions muss auf 50 festgelegt werden.

Wenn Sie viele SSH-Aufgaben gleichzeitig ausführen, erhöhen Sie die Werte für MaxSessions und MaxOpenSessions auf dem SSH-Host. Verwenden Sie Ihre vRealize Automation-Instanz nicht als SSH-Host, wenn Sie die Konfigurationseinstellungen für „MaxSessions“ und „MaxOpenSessions“ ändern müssen.

Die SSH-Aufgabe bietet keine Unterstützung für private Schlüssel vom Typ „OpenSSH“. Erzeugen Sie das öffentliche/private Schlüsselpaar mithilfe einer der folgenden Methoden:
  • Verwenden Sie PuTTYgen zum Erzeugen des Schlüsselpaars auf einer Windows-Maschine.
  • Verwenden Sie ssh -V auf einer Mac- oder Linux-Maschine, um zu überprüfen, ob die SSH-Version älter als 7.8 ist. Verwenden Sie anschließend ssh -keygen, um das Schlüsselpaar in einem Terminalfenster zu erzeugen.
Hinweis: Stellen Sie sicher, dass der erzeugte Schlüssel nicht mit BEGIN OPENSSH PRIVATE KEY angezeigt wird.
Wenn es sich bei dem erzeugten öffentlichen Schlüssel um einen autorisierten Schlüssel auf der Remotemaschine handelt, lesen Sie einen der folgenden Artikel, um das private OpenSSH-Format zu ändern:

Beim Konfigurieren der SSH-Aufgabe muss der private Schlüssel als Klartext eingegeben werden. Durch Speichern des Schlüssels als Variable oder Eingabe wird das Schlüsselformat geändert, und die Pipeline-Aufgabe kann nicht ausgeführt werden.

Das Skript kann remote oder benutzerdefiniert sein. Ein Skript kann beispielsweise folgendermaßen aussehen:

message="Hello World" echo $message

Das Skript schreibt die Ausgabe in eine Antwortdatei, die von einer anderen Pipeline verwendet werden kann.