Als Entwickler benötigen Sie eine Pipeline, die bei jeder Übergabe einer Änderung eine Cloud-Automatisierungsvorlage aus einer lokalen GitHub-Instanz abruft. Sie benötigen die Pipeline, um eine WordPress-Anwendung für Amazon Web Services (AWS) EC2 oder ein Datencenter bereitzustellen. Code Stream ruft die Cloud-Vorlage aus der Pipeline auf und automatisiert die kontinuierliche Integration und die kontinuierliche Bereitstellung (CICD) dieser Cloud-Vorlage, um Ihre Anwendung bereitzustellen.

Um Ihre Pipeline zu erstellen und auszulösen, benötigen Sie eine VMware Cloud-Vorlage.

Für die Cloud-Vorlagenquelle in Ihrer Code Stream-Cloud-Vorlagenaufgabe können Sie eine der folgenden Optionen auswählen:

  • Cloud Assembly-Vorlage als Quellcodeverwaltung. In diesem Fall benötigen Sie kein GitLab- oder GitHub-Repository.
  • Quellcodeverwaltung, wenn Sie GitLab oder GitHub für die Quellcodeverwaltung verwenden. In diesem Fall benötigen Sie einen Webhook und müssen die Pipeline über den Webhook auslösen.

Wenn Ihr GitHub-Repository eine YAML-Cloud-Vorlage enthält und Sie diese Cloud-Vorlage in Ihrer Pipeline verwenden möchten, müssen Sie wie folgt vorgehen.

  1. Übertragen Sie die Cloud-Vorlage in Cloud Assembly in Ihr GitHub-Repository.
  2. Erstellen Sie in Code Stream einen Git-Endpoint. Erstellen Sie anschließend einen Git-Webhook, der Ihren Git-Endpoint und Ihre Pipeline verwendet.
  3. Aktualisieren Sie zum Auslösen der Pipeline eine beliebige Datei im GitHub-Repository und übergeben Sie die Änderung.

Falls Ihr GitHub-Repository keine YAML-Cloud-Vorlage enthält und Sie eine Cloud-Vorlage aus der Quellcodeverwaltung verwenden möchten, erfahren Sie im folgenden Verfahren, wie Sie dabei vorgehen müssen. Ihnen wird gezeigt, wie Sie eine Cloud-Vorlage für eine WordPress-Anwendung erstellen und diese über ein lokales GitHub-Repository auslösen. Immer dann, wenn Sie eine Änderung an der YAML-Cloud-Vorlage vornehmen, löst die Pipeline die Freigabe Ihrer Anwendung aus und automatisiert sie.

  • In Cloud Assembly fügen Sie ein Cloud-Konto und eine Cloud-Zone hinzu und erstellen die Cloud-Vorlage.
  • In Code Stream fügen Sie einen Endpoint für das lokale GitHub-Repository hinzu, in dem Ihre Cloud-Vorlage gehostet wird. Anschließend fügen Sie die Cloud-Vorlage Ihrer Pipeline hinzu.

In diesem Anwendungsbeispiel wird gezeigt, wie Sie eine Cloud-Vorlage aus einem lokalen GitHub-Repository verwenden.

Der Workflow hilft Ihnen beim Navigieren durch den Vorgang, der die Freigabe einer Anwendung automatisiert, die Sie von einer YAML-Cloud-Vorlage bereitstellen.

Voraussetzungen

  • Fügen Sie ein Cloud-Konto und eine Cloud-Zone zu Ihrer vRealize Automation Cloud Assembly-Infrastruktur hinzu. Weitere Informationen finden Sie in der Dokumentation zu vRealize Automation Cloud Assembly.
  • Um Ihre Cloud-Vorlage im folgenden Verfahren zu erstellen, kopieren Sie den WordPress-YAML-Code in die Zwischenablage. Weitere Informationen zum YAML-Code der Cloud-Vorlage im WordPress-Anwendungsfall finden Sie in der Dokumentation zu vRealize Automation Cloud Assembly.
  • Fügen Sie den YAML-Code für die WordPress-Anwendung zu Ihrer GitHub-Instanz hinzu.
  • Fügen Sie einen Webhook für den Git-Auslöser hinzu, damit Ihre Pipeline den YAML-Code immer dann abrufen kann, wenn Sie Änderungen daran übernehmen. Klicken Sie in Code Stream auf Auslöser > Git > Webhooks für Git.
  • Um mit einer Cloud-Vorlagenaufgabe zu arbeiten, müssen Sie über eine der Cloud Assembly-Rollen verfügen.

Prozedur

  1. Führen Sie in Cloud Assembly die folgenden Schritte aus.
    1. Klicken Sie auf VMware Cloud Templates und erstellen Sie dann eine Cloud-Vorlage und eine Bereitstellung für die WordPress-Anwendung.
    2. Fügen Sie den WordPress-YAML-Code, den Sie in Ihre Zwischenablage kopiert haben, in Ihre Cloud-Vorlage ein und stellen Sie ihn bereit.
      Unter Verwendung des YAML-Codes erstellt die Cloud-Vorlage die Datenbankebene, die Webebene und das Netzwerk in Ihrer Bereitstellung.
  2. Erstellen Sie Endpoints in Code Stream.
    1. Erstellen Sie einen Git-Endpoint für Ihr lokales GitHub-Repository, in dem sich Ihre YAML-Datei befindet.
    2. Fügen Sie einen E-Mail-Endpoint hinzu, der Benutzer über den Pipeline-Status benachrichtigen kann, wenn er ausgeführt wird.
      Wenn Sie einen E-Mail-Endpoint hinzufügen, legen Sie die Verschlüsselungsmethode und das Ausgangsprotokoll fest.
  3. Erstellen Sie eine Pipeline und fügen Sie Benachrichtigungen für eine erfolgreiche und fehlerhafte Ausführung hinzu.
    Wenn Sie eine E-Mail-Benachrichtigung hinzufügen, wählen Sie einen der Pipeline-Zustände aus sowie den E-Mail-Server und die Empfänger.
  4. Fügen Sie eine Phase für die Bereitstellung und eine Cloud-Vorlagenaufgabe hinzu.
    1. Fügen Sie eine Cloud-Vorlagenaufgabe hinzu, die die Maschine bereitstellt, und konfigurieren Sie die Aufgabe so, dass Sie die Cloud-Vorlagen-YAML für die WordPress-Anwendung verwendet.
      resources:
        DBTier:    
          type: Cloud.Machine    
          properties:      
              name: mysql      
              image: 'ubuntu-16'      
              flavor: 'small'      
              constraints:        
                  -   tag: zone:dev
        WebTier:
          type: Cloud.Machine    
          properties:     
              name: wordpress      
              image: 'ubuntu-16'      
              flavor: 'small'      
              constraints:        
                  - tag: zone:dev
       WP-Network-Private:
          type: Cloud.Network
          properties:
              name: WP-Network-Private
              networkType: existing
              constraints:
                  - tag: 'type:isolated-net'
                  - tag: 'zone:dev'
    2. Fügen Sie eine Cloud-Vorlagenaufgabe zum Löschen der Maschine hinzu, um Ressourcen freizugeben.
  5. Fügen Sie eine Phase für die Produktion hinzu und schließen Sie Genehmigungs- und Bereitstellungsaufgaben ein.
    1. Fügen Sie eine Benutzervorgangsaufgabe hinzu, um die Genehmigung für die Übertragung der WordPress-Anwendung auf die Produktionsebene anzufordern.
    2. Fügen Sie eine Cloud-Vorlagenaufgabe hinzu, um die Maschine bereitzustellen, und konfigurieren Sie sie mit der Cloud-Vorlagen-YAML für die WordPress-Anwendung.
      Wenn Sie Erstellen auswählen, muss der Bereitstellungsname eindeutig sein. Wenn Sie den Namen leer lassen, weist Code Stream einen zufälligen eindeutigen Namen zu.
      Sie müssen Folgendes wissen, wenn Sie in Ihrem eigenen Anwendungsbeispiel Rollback auswählen: Wenn Sie die Aktion Rollback auswählen und eine Rollback-Version eingeben, muss die Version in folgender Form angegeben werden: n-X. Beispiel: n-1, n-2, n-3 usw. Wenn Sie die Bereitstellung an einem anderen Speicherort als Code Stream erstellen und aktualisieren, ist das Rollback zulässig.
      Wenn Sie sich bei Code Stream anmelden, wird ein Benutzertoken abgerufen, das 30 Minuten lang gültig ist. Wenn die Aufgabe vor der Cloud-Vorlagenaufgabe 30 Minuten oder länger dauert, läuft das Benutzertoken bei lang andauernden Pipeline-Ausführungen ab. Dies führt dazu, dass die Cloud-Vorlagenaufgabe fehlschlägt.
      Um sicherzustellen, dass Ihre Pipeline mehr als 30 Minuten lang ausgeführt werden kann, können Sie ein optionales API-Token eingeben. Wenn Code Stream die Cloud-Vorlage aufruft, bleibt das API-Token bestehen und wird weiterhin von der Cloud-Vorlagenaufgabe verwendet.
      Wenn Sie das API-Token als Variable verwenden, wird es verschlüsselt. Andernfalls wird es als Klartext verwendet.
      Die Cloud-Vorlagenaufgabe kann eine VMware-Cloud-Vorlage in Cloud Assembly verwenden oder eine Vorlage aus der Quellcodeverwaltung in einem GitLab- oder GitHub-Repository entnehmen.
  6. Führen Sie die Pipeline aus.

    Um sicherzustellen, dass jede Aufgabe erfolgreich abgeschlossen wurde, klicken Sie auf die Aufgabe in der Ausführung und überprüfen Sie den Status in den Bereitstellungsdetails, in denen detaillierte Ressourceninformationen angezeigt werden.

  7. Ändern Sie in GitHub den Typ der WordPress-Serverinstanz von small in medium.
    Wenn Sie Änderungen übernehmen, wird die Pipeline ausgelöst. Sie ruft Ihren aktualisierten Code aus dem GitHub-Repository ab und erstellt Ihre Anwendung.
    WebTier:
        type: Cloud.Machine    
        properties:     
            name: wordpress      
            image: 'ubuntu-16'      
            flavor: 'medium'      
            constraints:        
                - tag: zone:dev
  8. Führen Sie die Pipeline erneut aus, stellen Sie sicher, dass sie erfolgreich war und dass sie den Typ der WordPress-Instanz von small in medium geändert hat.

Ergebnisse

Herzlichen Glückwunsch! Sie haben die Version Ihrer Anwendung automatisiert, die Sie über eine YAML-Cloud-Vorlage bereitgestellt haben.

Nächste Maßnahme

Weitere Informationen zur Verwendung von Code Stream finden Sie unter Lernprogramme für die Verwendung von Code Stream.

Weitere Referenzen finden Sie unter Weitere Ressourcen für Code Stream-Administratoren und -Entwickler.