Als DevOps-Administrator oder -Entwickler können Sie benutzerdefinierte Skripts erstellen, die die Funktion von Automation Pipelines erweitern.
Mit Ihrem Skript können Sie Automation Pipelines in Ihre eigenen CI-Tools (Continuous Integration), CD-Tools (Continuous Delivery) und APIs integrieren, die Ihre Anwendungen erstellen, testen und bereitstellen. Benutzerdefinierte Skripts sind besonders nützlich, wenn Sie Ihre Anwendungs-APIs nicht öffentlich verfügbar machen.
Das benutzerdefinierte Skript enthält nahezu alle Funktionen, die zur Integration der Build-, Test-und Bereitstellungstools in Automation Pipelines benötigt werden. Beispielsweise kann das Skript mit dem Pipeline-Arbeitsbereich zusammenarbeiten, um CI-Aufgaben (Continuous Integration), die Ihre Anwendung erstellen und testen, sowie CD-Aufgaben (Continuous Delivery) zu unterstützen, die Ihre Anwendung bereitstellen. Es kann eine Meldung an Slack senden, wenn eine Pipeline abgeschlossen ist, und vieles mehr.
Der Arbeitsbereich der Automation Pipelines-Pipeline unterstützt Docker und Kubernetes für CI- und benutzerdefinierte Aufgaben.
Weitere Informationen zum Konfigurieren des Arbeitsbereichs finden Sie unter Konfigurieren des Pipeline-Arbeitsbereichs.
Sie schreiben Ihr benutzerdefiniertes Skript in einer der unterstützten Sprachen. Sie nehmen Ihre Geschäftslogik im Skript auf und definieren Ein- und Ausgaben. Ausgabetypen können Zahl, Zeichenfolge, Text und Kennwort enthalten. Sie können mehrere Versionen eines benutzerdefinierten Skripts mit unterschiedlicher Geschäftslogik, Eingaben und Ausgaben erstellen.
Die von Ihnen erstellten Skripts befinden sich in Ihrer Automation Pipelines-Instanz. Sie können YAML-Code importieren, um eine benutzerdefinierte Integration zu erstellen, oder Ihr Skript als YAML-Datei zur Verwendung in einer anderen Automation Pipelines-Instanz exportieren.
In der Pipeline wurde eine veröffentlichte Version des Skripts in einer benutzerdefinierten Aufgabe ausgeführt. Wenn Sie über mehrere freigegebene Versionen verfügen, können Sie eine davon als neueste Version festlegen, sodass sie mit Aktuell --> angezeigt wird, wenn Sie die benutzerdefinierte Aufgabe auswählen.
Wenn eine Pipeline eine benutzerdefinierte Integration verwendet und Sie versuchen, die benutzerdefinierte Integration zu löschen, wird eine Fehlermeldung angezeigt, die besagt, dass Sie sie nicht löschen können.
Beim Löschen einer benutzerdefinierten Integration werden alle Versionen des benutzerdefinierten Skripts entfernt. Wenn Sie über eine vorhandene Pipeline mit einer benutzerdefinierten Aufgabe verfügen, die eine beliebige Version des Skripts verwendet, schlägt diese Pipeline fehl. Damit vorhandene Pipelines nicht fehlschlagen, können Sie die nicht mehr zu verwendende Version des Skripts als veraltet einstufen und zurückziehen. Wenn diese Version von keiner Pipeline verwendet wird, können Sie sie löschen.
Vorgehensweise... | Weitere Informationen zu dieser Aktion... |
---|---|
Hinzufügen einer benutzerdefinierten Aufgabe zu Ihrer Pipeline. |
Die benutzerdefinierte Aufgabe:
|
Auswählen Ihres Skripts in der benutzerdefinierten Aufgabe. |
Sie deklarieren die Eingabe- und Ausgabeeigenschaften im Skript. |
Speichern, Aktivieren und Ausführen Ihrer Pipeline. |
Bei Ausführung der Pipeline ruft die benutzerdefinierte Aufgabe die Version des angegebenen Skripts auf und führt die darin enthaltene Geschäftslogik aus, die von Ihrem Build-, Test- und Bereitstellungstool in Automation Pipelines integriert wird. |
Anzeigen der Ausführungen nach dem Ausführen Ihrer Pipeline. |
Vergewissern Sie sich, dass die Pipeline die erwarteten Ergebnisse bereitgestellt hat. |
Wenn Sie eine benutzerdefinierte Aufgabe verwenden, die eine Version der benutzerdefinierten Integration aufruft, können Sie benutzerdefinierte Umgebungsvariablen als Name/Wert-Paare auf der Registerkarte Arbeitsbereich der Pipeline einbeziehen. Wenn das Builder-Image den Arbeitsbereichscontainer erstellt, der die CI-Aufgabe ausführt und Ihr Image bereitstellt, übergibt Automation Pipelines die Umgebungsvariablen an diesen Container.
Beispiel: Wenn Ihre Automation Pipelines-Instanz einen Web-Proxy benötigt und Sie einen Docker-Host zum Erstellen eines Containers für eine benutzerdefinierte Integration verwenden, führt Automation Pipelines die Pipeline aus und übergibt die Variablen der Web-Proxy-Einstellungen an diesen Container.
Name | Wert |
---|---|
HTTPS_PROXY | http://10.0.0.255:1234 |
https_proxy | http://10.0.0.255:1234 |
NO_PROXY | 10.0.0.32, *.dept.vsphere.local |
no_proxy | 10.0.0.32, *.dept.vsphere.local |
HTTP_PROXY | http://10.0.0.254:1234 |
http_proxy | http://10.0.0.254:1234 |
PATH | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
Name/Wert-Paare werden auf der Benutzeroberfläche folgendermaßen angezeigt:
In diesem Beispiel wird eine benutzerdefinierte Integration erstellt, die Automation Pipelines mit Ihrer Slack-Instanz verbindet und eine Nachricht an einen Slack-Kanal sendet.
Voraussetzungen
- Zum Schreiben Ihres benutzerdefinierten Skripts stellen Sie sicher, dass Sie über die Sprachen „Python 2“, „Python 3“ und „Node.js“ oder die Shell-Sprachen „Bash“, „sh“ oder „zsh“ verfügen.
- Erzeugen Sie ein Container-Image, indem Sie die installierte Node.js- oder Python-Laufzeit verwenden.
Prozedur
Ergebnisse
Herzlichen Glückwunsch! Sie haben ein benutzerdefiniertes Integrationsskript erstellt, das Automation Pipelines mit Ihrer Slack-Instanz verbindet und eine Nachricht an einen Slack-Kanal sendet.
Nächste Maßnahme
Erstellen Sie weiterhin benutzerdefinierte Integrationen, um die Verwendung benutzerdefinierter Aufgaben in Ihren Pipelines zu unterstützen, sodass Sie die Funktion von Automation Pipelines in der Automatisierung des Lebenszyklus Ihrer Softwareversion erweitern können.