身為開發人員,您需要在每次認可變更時都從內部部署 GitHub 執行個體擷取自動化雲端範本的管線。您需要使用管線將 WordPress 應用程式部署到 Amazon Web Services (AWS) EC2 或資料中心。 Code Stream 從管線呼叫雲端範本,並自動執行該雲端範本的持續整合與持續交付 (CICD) 以部署應用程式。

若要建立並觸發管線,您將需要一個 VMware 雲端範本。

對於 Code Stream 雲端範本工作中的雲端範本來源,您可以選取下列其中一項:

  • Cloud Assembly 範本,以作為原始檔控制。在此情況下,無需 GitLab 或 GitHub 存放庫。
  • 原始檔控制 (如果將 GitLab 或 GitHub 用於原始檔控制)。在此情況下,您必須具有 Git webhook,並透過 webhook 觸發管線。

如果 GitHub 存放庫中有 YAML 雲端範本,並且想要在管線中使用該雲端範本,則以下是您需要執行的動作。

  1. Cloud Assembly 中,將雲端範本推送至 GitHub 存放庫。
  2. Code Stream 中,建立 Git 端點。然後,建立使用 Git 端點和管線的 Git webhook。
  3. 若要觸發管線,請更新 GitHub 存放庫中的任何檔案,並認可變更。

如果 GitHub 存放庫中沒有 YAML 雲端範本,並且想要從原始檔控制使用雲端範本,請使用此程序來瞭解如何操作。此程序說明了如何為 WordPress 應用程式建立雲端範本,以及如何從內部部署 GitHub 存放庫進行觸發。每當您變更 YAML 雲端範本時,管線都會觸發並自動執行應用程式的發行程序。

  • Cloud Assembly 中,您將新增雲端帳戶、新增雲端區域,以及建立雲端範本。
  • Code Stream 中,您將為主控雲端範本的內部部署 GitHub 存放庫新增端點。然後,將雲端範本新增至管線。

此使用案例範例顯示如何使用內部部署 GitHub 存放庫中的雲端範本。

此工作流程可協助您導覽自動發行從 YAML 雲端範本部署之應用程式的程序。

必要條件

  • 在 vRealize Automation Cloud Assembly 基礎結構中新增雲端帳戶和雲端區域。請參閱 vRealize Automation Cloud Assembly 說明文件。
  • 若要在下列程序中建立雲端範本,請將 WordPress YAML 代碼複製到剪貼簿。請參閱 vRealize Automation Cloud Assembly 說明文件中 WordPress 使用案例中的雲端範本 YAML 代碼。
  • 將 WordPress 應用程式的 YAML 程式碼新增至 GitHub 執行個體。
  • 為 Git 觸發器新增 webhook,以便每次 commit 變更時,管線均可提取 YAML 程式碼。在 Code Stream 中,按一下觸發器 > Git > 適用於 Git 的 Webhook
  • 若要使用雲端範本工作,您必須擁有任一 Cloud Assembly 角色。

程序

  1. Cloud Assembly 中,依照下列步驟進行操作。
    1. 按一下 VMware Cloud Templates,然後為 WordPress 應用程式建立雲端範本和部署。
    2. 將複製到剪貼簿的 WordPress YAML 代碼貼至您的雲端範本,然後進行部署。
      透過使用 YAML 代碼,雲端範本會在部署中建立資料庫層、Web 層和網路。
  2. Code Stream 中,建立端點。
    1. 針對 YAML 檔案所在的內部部署 GitHub 存放庫建立 Git 端點。
    2. 新增可在管線執行時向使用者通知管線狀態的電子郵件端點。
      新增電子郵件端點時,設定加密方法並設定輸出通訊協定。
  3. 建立管線,並新增管線成功和失敗的通知。
    新增電子郵件通知時,選取其中一個管線狀態,然後選取電子郵件伺服器和收件者。
  4. 新增開發階段,並新增雲端範本工作。
    1. 新增用於部署機器的雲端範本工作,並將此工作設定為使用 WordPress 應用程式的雲端範本 YAML。
      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. 新增用於銷毀機器以釋放資源的雲端範本工作。
  5. 新增用於生產的階段,並加入核准和部署工作。
    1. 新增使用者作業工作,以要求需要核准才能將 WordPress 應用程式推送至生產環境。
    2. 新增用於部署機器的雲端範本工作,並使用 WordPress 應用程式的雲端範本 YAML 對其進行設定。
      當您選取 建立時,部署名稱必須是唯一的。如果將名稱保留空白, Code Stream 將為其隨機指派唯一的名稱。
      如果在自己的使用案例中選取 復原,則必須瞭解以下內容:如果選取 復原動作並輸入 復原版本,則版本必須採用 n-X 格式。例如, n-1n-2n-3 等等。如果在 Code Stream 以外的任何位置建立和更新部署,將允許執行復原。
      當您登入 Code Stream 時,便會取得使用者 Token,此 Token 的有效期為 30 分鐘。對於執行持續時間較長的管線,如果雲端範本工作之前的工作需要 30 分鐘或更長時間來執行,則使用者 Token 會到期。因此,雲端範本工作會失敗。
      若要確保管線的執行時間超過 30 分鐘,您可以輸入選擇性 API Token。當 Code Stream 叫用雲端範本時,API Token 會持續存在,且雲端範本工作會繼續使用 API Token。
      當您將 API Token 當作變數使用時,會將其加密。否則,它會以純文字形式使用。
      雲端範本工作可以使用 Cloud Assembly 中的 VMware 雲端範本,也可以從 GitLab 存放庫或 GitHub 存放庫中的原始檔控制提取一個雲端範本。
  6. 執行管線。

    若要確認每項工作是否已成功完成,請按一下執行中的工作,然後檢查部署詳細資料中的狀態,以查看詳細的資源資訊。

  7. 在 GitHub 中,將 WordPress 伺服器執行個體的類型模板從 small 修改為 medium
    當您 commit 變更時,管線會觸發。它會從 GitHub 存放庫中提取更新的程式碼,並建置應用程式。
    WebTier:
        type: Cloud.Machine    
        properties:     
            name: wordpress      
            image: 'ubuntu-16'      
            flavor: 'medium'      
            constraints:        
                - tag: zone:dev
  8. 再次執行管線,確認其是否成功,以及是否將 WordPress 執行個體的類型模板從變更為

結果

恭喜您!您已設定自動發行從 YAML 雲端範本部署的應用程式。

下一步

若要進一步瞭解如何使用 Code Stream,請參閱使用 Code Stream 的教學課程

如需其他參考,請參閱供 Code Stream 管理員和開發人員使用的更多資源