Als Entwickler benötigen Sie eine Pipeline, die jedes Mal, wenn Sie eine Änderung übergeben, einen Automatisierungs-Blueprint von 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 den Blueprint aus der Pipeline auf und automatisiert die kontinuierliche Integration und die kontinuierliche Bereitstellung (CICD) dieses Blueprints zur Bereitstellung Ihrer Anwendung.

Um Ihre Pipeline zu erstellen und auszulösen, benötigen Sie einen Blueprint.

Für die Blueprint-Quelle in Ihrer Blueprint-Aufgabe können Sie eine der folgenden Optionen auswählen:

  • Cloud Assembly-Blueprints 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 einen YAML-Blueprint enthält und Sie diesen Blueprint in Ihrer Pipeline verwenden möchten, müssen Sie wie folgt vorgehen.

  1. Übertragen Sie den Blueprint in VMware 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 keinen YAML-Blueprint enthält und Sie einen Blueprint aus der Quellcodeverwaltung verwenden möchten, erfahren Sie im folgenden Verfahren, wie Sie dabei vorgehen müssen. Ihnen wird gezeigt, wie Sie einen Blueprint für eine WordPress-Anwendung erstellen und diesen von einem lokalen GitHub-Repository aus auslösen. Immer dann, wenn Sie eine Änderung an dem YAML-Blueprint vornehmen, löst die Pipeline die Freigabe Ihrer Anwendung aus und automatisiert sie.

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

In diesem Anwendungsbeispiel wird gezeigt, wie Sie einen Blueprint aus einem lokalen GitHub-Repository verwenden.

Workflow zur Automatisierung der Version einer über einen YAML-Blueprint bereitgestellte Anwendung.

Voraussetzungen

Prozedur

  1. Führen Sie in VMware Cloud Assembly die folgenden Schritte aus.
    1. Klicken Sie auf Blueprints und erstellen Sie dann einen Blueprint und eine Bereitstellung für die WordPress-Anwendung.
    2. Fügen Sie den WordPress-YAML-Code, den Sie in Ihre Zwischenablage kopiert haben, in Ihren Blueprint ein und stellen Sie ihn bereit.
      WordPress-Blueprint – Beispiel.
  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.
      Erstellen eines Git-Endpoints für ein lokales GitHub-Repository.
    2. Fügen Sie einen E-Mail-Endpoint hinzu, um Benutzer über den Pipeline-Status zu benachrichtigen, wenn er ausgeführt wird.
      Hinzufügen eines E-Mail-Endpoints.
  3. Erstellen Sie eine Pipeline und fügen Sie Benachrichtigungen für eine erfolgreiche und fehlerhafte Ausführung hinzu.
    E-Mail-Benachrichtigungen für Pipelines und Auswahl eines E-Mail-Servers.
  4. Fügen Sie eine Phase für die Bereitstellung und eine Blueprint-Aufgabe hinzu.
    1. Fügen Sie eine Blueprint-Aufgabe hinzu, die die Maschine bereitstellt, und konfigurieren Sie sie so, dass Sie die Blueprint-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 Blueprint-Aufgabe hinzu, die die Maschine löscht, 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 Blueprint-Aufgabe hinzu, um die Maschine bereitzustellen und sie mit der Blueprint-YAML für die WordPress-Anwendung zu konfigurieren.
      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 nicht 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 Blueprint-Aufgabe 30 Minuten oder länger dauert, läuft das Benutzertoken bei lang andauernden Pipeline-Ausführungen ab. Dies führt dazu, dass die Blueprint-Aufgabe 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 den Blueprint aufruft, bleibt das API-Token bestehen und wird weiterhin von der Blueprint-Aufgabe verwendet.
      Wenn Sie das API-Token als Variable verwenden, wird es verschlüsselt. Andernfalls wird es als Klartext verwendet.
      Hinzufügen einer Blueprint-Aufgabe für die WordPress-Anwendungsbereitstellung.
  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 einen YAML-Blueprint bereitgestellt haben.

Nächste Maßnahme

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

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