Zum Erstellen einer CICD-Pipeline (Continuous Integration und Continuous Delivery) in Automation Pipelines können Sie die intelligente Pipeline-Vorlage für CICD verwenden. Zum Planen Ihres nativen CICD-Builds sammeln Sie die Informationen für die intelligente Pipeline-Vorlage, bevor Sie sie zum Erstellen der Pipeline in diesem Beispielplan verwenden.
Zum Erstellen einer CICD-Pipeline müssen Sie sowohl die CI- (Continuous Integration, Kontinuierliche Integration) als auch die CD-Phase (Continuous Delivery, Kontinuierliche Bereitstellung) Ihrer Pipeline planen.
Nachdem Sie die Informationen in der intelligenten Pipeline-Vorlage eingegeben und gespeichert haben, erstellt die Vorlage eine Pipeline, die die Phasen und Aufgaben enthält. Außerdem wird das Bereitstellungsziel des Images basierend auf den ausgewählten Umgebungstypen (z. B. „Entwicklung“ oder „Produktion“) angegeben. Die Pipeline veröffentlicht Ihr Container-Image und führt die Aktionen durch, die zur Ausführung des Images erforderlich sind. Nachdem Ihre Pipeline ausgeführt wurde, können Sie Trends über die Pipeline-Ausführungen hinweg überwachen.
Wenn eine Pipeline ein Image aus dem Docker-Hub enthält, müssen Sie vor der Pipeline-Ausführung sicherstellen, dass cURL oder wget in das Image eingebettet wurde. Wenn die Pipeline ausgeführt wird, lädt Automation Pipelines eine binäre Datei herunter, die cURL oder wget zum Ausführen von Befehlen verwendet.
Informationen zum Konfigurieren des Arbeitsbereichs finden Sie unter Konfigurieren des Pipeline-Arbeitsbereichs.
Planen der CI-Phase
Zum Planen der CI-Phase Ihrer Pipeline richten Sie die externen und internen Anforderungen ein und bestimmen die Informationen, die für den CI-Abschnitt der intelligenten Pipeline-Vorlage benötigt werden. Zusammenfassung.
In diesem Beispiel wird ein Docker-Arbeitsbereich verwendet.
Cloud-basierte oder lokale Remote-Endpoints und Repositorys, die benötigt werden:
- Ein Quellcode-Repository, in das Entwickler ihren Code einchecken. Automation Pipelines übergibt den aktuellen Code an die Pipeline, wenn Entwickler Änderungen vornehmen.
- Ein Git-Endpoint für das Repository, in dem sich der Quellcode der Entwickler befindet.
- Ein Docker-Endpoint für den Docker-Build-Host, der die Build-Befehle in einem Container ausführt.
- Ein Kubernetes-Endpoint, damit Automation Pipelines Ihr Image auf einem Kubernetes-Cluster bereitstellen kann.
- Ein Builder-Image, das den Container erstellt, auf dem die Tests für die kontinuierliche Integration ausgeführt werden.
- Ein Image-Registrierungs-Endpoint, damit der Docker-Build-Host das Builder-Image daraus abrufen kann.
Sie benötigen Zugriff auf ein Projekt. Ein Projekt, in dem Ihre gesamte Arbeit, einschließlich Ihrer Pipeline, Endpoints und Dashboards, gruppiert wird. Vergewissern Sie sich, dass Sie Mitglied eines Projekts in Automation Pipelines sind. Falls nicht, bitten Sie einen Automation Pipelines-Administrator, Sie als Mitglied eines Projekts hinzuzufügen. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Hinzufügen eines Projekts in Automation Pipelines.
Sie brauchen einen Git-Webhook, der es Automation Pipelines ermöglicht, den Git-Auslöser zu verwenden, der Ihre Pipeline auslöst, wenn Entwickler Codeänderungen vornehmen. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Verwenden des Git-Auslösers in Automation Pipelines zum Ausführen einer Pipeline.
Ihre Build-Toolsets:
- Ihr Build-Typ, z. B. Maven.
- Alle von Ihnen verwendeten Tools für die Nachbearbeitung von Builds, einschließlich JUnit, JaCoCo, Checkstyle und FindBugs.
Ihr Veröffentlichungstool:
- Ein Tool, wie z. B. Docker, das den Build-Container bereitstellt.
- Ein Image-Tag, bei dem es sich entweder um die Commit-ID oder die Build-Nummer handelt.
Ihr Build-Arbeitsbereich:
- Ein Docker-Build-Host, der den Docker-Endpoint darstellt.
- Eine Image-Registrierung. Der CI-Abschnitt der Pipeline ruft das Image aus dem ausgewählten Registrierungs-Endpoint ab. Der Container führt die CI-Aufgaben aus und stellt das Image bereit. Wenn bei der Registrierung Anmeldedaten benötigt werden, müssen Sie einen Image-Registrierungs-Endpoint erstellen und diesen dann hier auswählen, damit der Host das Image aus der Registrierung abrufen kann.
- URL für das Builder-Image, das den Container erstellt, auf dem die Aufgaben für die kontinuierliche Integration ausgeführt werden.
Planen der CD-Phase
Zum Planen der CD-Phase Ihrer Pipeline richten Sie die externen und internen Anforderungen ein und bestimmen die Informationen, die in den CD-Abschnitt der intelligenten Pipeline-Vorlage eingegeben werden sollten.
Cloud-basierte oder lokale Remote-Endpoints, die benötigt werden:
- Ein Kubernetes-Endpoint, damit Automation Pipelines Ihr Image auf einem Kubernetes-Cluster bereitstellen kann.
Umgebungstypen und Dateien:
- Alle Umgebungstypen, in denen Automation Pipelines Ihre Anwendung bereitstellt, z. B. „Entwicklung“ und „Produktion“. Die intelligente Pipeline-Vorlage erstellt die Phasen und Aufgaben in Ihrer Pipeline basierend auf den ausgewählten Umgebungstypen.
Tabelle 1. Von der intelligenten Pipeline-Vorlage für CICD erstellte Pipeline-Phasen Pipeline-Inhalt Funktionsweise Build-/Veröffentlichungsphase Erstellt und testet Ihren Code, erstellt das Builder-Image und veröffentlicht das Image auf Ihrem Docker-Host. Entwicklungsphase Verwendet einen Amazon Web Services-Entwicklungscluster (AWS), um das Image zu erstellen und bereitzustellen. In dieser Phase können Sie einen Namespace auf dem Cluster sowie einen geheimen Schlüssel erstellen. Produktionsphase Verwendet eine Produktionsversion der VMware Tanzu Kubernetes Grid Integrated Edition (zuvor als VMware Enterprise PKS bezeichnet), um das Image in einem Kubernetes-Produktionscluster bereitzustellen. - Eine Kubernetes-YAML-Datei, die Sie im CD-Abschnitt der intelligenten Pipeline-Vorlage für CICD auswählen.
Die Kubernetes-YAML-Datei enthält drei erforderliche Abschnitte für Namespace, Dienst und Bereitstellung und einen optionalen Abschnitt für den geheimen Schlüssel. Wenn Sie eine Pipeline erstellen möchten, indem Sie ein Image aus einem privaten Repository herunterladen, müssen Sie einen Abschnitt mit dem geheimen Docker-Konfigurationsschlüssel hinzufügen. Wenn die von Ihnen erstellte Pipeline nur öffentlich verfügbare Images verwendet, ist kein geheimer Schlüssel erforderlich. Die folgende YAML-Beispieldatei enthält vier Abschnitte.
apiVersion: v1 kind: Namespace metadata: name: pipelines namespace: pipelines --- apiVersion: v1 data: .dockerconfigjson: eyJhdXRocyI6eyJodHRwczovL2luZ1234567890lci5pby92MS8iOnsidXNlcm5hbWUiOiJhdXRvbWF0aW9uYmV0YSIsInBhc3N3b3JkIjoiVk13YXJlQDEyMyIsImVtYWlsIjoiYXV0b21hdGlvbmJldGF1c2VyQGdtYWlsLmNvbSIsImF1dGgiOiJZWFYwYjIxaGRHbHZibUpsZEdFNlZrMTNZWEpsUURFeU13PT0ifX19 kind: Secret metadata: name: dockerhub-secret namespace: pipelines type: kubernetes.io/dockerconfigjson --- apiVersion: v1 kind: Service metadata: name: pipelines-demo namespace: pipelines labels: app: pipelines-demo spec: ports: - port: 80 selector: app: pipelines-demo tier: frontend type: LoadBalancer --- apiVersion: apps/v1 kind: Deployment metadata: name: pipelines-demo namespace: pipelines labels: app: pipelines-demo spec: replicas: 10 selector: matchLabels: app: pipelines-demo tier: frontend template: metadata: labels: app: pipelines-demo tier: frontend spec: containers: - name: pipelines-demo image: automationbeta/pipelines-demo:01 ports: - containerPort: 80 name: pipelines-demo imagePullSecrets: - name: dockerhub-secret
Hinweis: Die Kubernetes-YAML-Datei wird auch in der intelligenten Pipeline-Vorlage für CD verwendet, wie z. B. in den folgenden Anwendungsfallbeispielen:- Vorgehensweise zum Bereitstellen meiner Anwendung in Automation Pipelines für meine Blau/Grün-Bereitstellung
- Vorgehensweise zum Rollback meiner Bereitstellung in Automation Pipelines
- Vorgehensweise zum Verwenden des Docker-Auslösers in Automation Pipelines zum Ausführen einer kontinuierlichen Bereitstellungs-Pipeline
Klicken Sie zum Anwenden der Datei in der intelligenten Vorlage auf Auswählen und wählen Sie die Kubernetes-YAML-Datei aus. Klicken Sie anschließend auf Verarbeiten. Die intelligente Pipeline-Vorlage zeigt die verfügbaren Dienste und Bereitstellungsumgebungen an. Sie wählen einen Dienst, den Cluster-Endpoint und die Bereitstellungsstrategie aus. Um beispielsweise das Canary-Bereitstellungsmodell zu verwenden, wählen Sie Canary aus und geben den Prozentsatz für die Bereitstellungsphase ein:
Ein Beispiel für die Verwendung der intelligenten Pipeline-Vorlage zum Erstellen einer Pipeline für eine Blau/Grün-Bereitstellung finden Sie unter Vorgehensweise zum Bereitstellen meiner Anwendung in Automation Pipelines für meine Blau/Grün-Bereitstellung.
Vorgehensweise zum Erstellen der CICD-Pipeline mithilfe der intelligenten Pipeline-Vorlage
Nachdem Sie alle Informationen gesammelt und alles Notwendige eingerichtet haben, erhalten Sie hier Informationen zum Erstellen einer Pipeline anhand der intelligenten Pipeline-Vorlage für CICD.
Klicken Sie unter „Pipelines“ auf
.
Sie wählen die intelligente Pipeline-Vorlage für CICD aus.
Sie füllen die Vorlage aus und speichern die Pipeline mit den von ihr erstellten Phasen. Wenn Sie abschließende Änderungen vornehmen müssen, können Sie die Pipeline bearbeiten und speichern.
Anschließend aktivieren Sie die Pipeline und führen sie aus. Nach der Ausführung der Pipeline finden Sie hier einige Dinge, nach denen Sie suchen können:
- Stellen Sie sicher, dass Ihre Pipeline erfolgreich war. Klicken Sie auf Ausführungen und suchen Sie nach Ihrer Pipeline. Wenn sie fehlgeschlagen ist, korrigieren Sie alle Fehler und führen Sie sie erneut aus.
- Stellen Sie sicher, dass der Git-Webhook ordnungsgemäß funktioniert. Auf der Git-Registerkarte Aktivität werden die Ereignisse angezeigt. Klicken Sie auf .
- Sehen Sie sich das Pipeline-Dashboard an und untersuchen Sie die Trends. Klicken Sie auf Dashboards und suchen Sie nach Ihrem Pipeline-Dashboard. Sie können auch ein benutzerdefiniertes Dashboard erstellen, um zusätzliche KPIs zu melden.
Ein detailliertes Beispiel finden Sie unter Vorgehensweise zur kontinuierlichen Integration von Code aus einem GitHub- oder GitLab-Repository in eine Pipeline in Automation Pipelines.