作为开发人员,您需要一个管道,以在每次提交更改时从内部部署 GitHub 实例中获取自动化蓝图。您需要使用该管道将 WordPress 应用程序部署到 Amazon Web Services (AWS) EC2 或数据中心。 Code Stream 将从该管道调用蓝图,并自动执行该蓝图的持续集成和持续交付 (CICD) 以部署您的应用程序。

要创建并触发管道,您需要一个蓝图。

对于蓝图任务中的蓝图源,可以执行选择:

  • Cloud Assembly 蓝图作为源控制。在这种情况下,不需要 GitLab 或 GitHub 存储库。
  • 源控制(如果使用 GitLab 或 GitHub 作为源控制)。在这种情况下,必须具有 Git webhook 并通过该 webhook 触发管道。

如果您的 GitHub 存储库中有 YAML 蓝图,并且希望在管道中使用该蓝图,则需要执行以下操作。

  1. VMware Cloud Assembly 中,将蓝图推送到 GitHub 存储库。
  2. Code Stream 中,创建 Git 端点。然后,创建使用 Git 端点和管道的 Git webhook。
  3. 要触发管道,请更新 GitHub 存储库中的任何文件并提交所做的更改。

如果您的 GitHub 存储库中没有 YAML 蓝图,并且希望使用源控制中的蓝图,请使用以下过程了解如何操作。该过程展示了如何为 WordPress 应用程序创建蓝图,并从内部部署 GitHub 存储库中触发该蓝图。每当您更改 YAML 蓝图时,管道都会触发并自动发布应用程序。

  • VMware Cloud Assembly 中,将添加云帐户、添加云区域并创建蓝图。
  • Code Stream 中,将为托管蓝图的内部部署 GitHub 存储库添加端点。然后,将蓝图添加到管道中。

以下用例示例展示了如何使用内部部署 GitHub 存储库中的蓝图。

自动执行从 YAML 蓝图部署的应用程序的发布的工作流。

前提条件

过程

  1. VMware Cloud Assembly 中,执行以下步骤。
    1. 单击蓝图,然后为 WordPress 应用程序创建蓝图和部署。
    2. 将已复制到剪贴板的 WordPress YAML 代码粘贴到蓝图中,然后部署该蓝图。
      示例 WordPress 蓝图。
  2. Code Stream 中,创建端点。
    1. 为 YAML 文件所在的内部部署 GitHub 存储库添加 Git 端点。
      为内部部署 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 时,它将获取用户令牌,令牌有效时间为 30 分钟。如果管道持续运行时间长,则蓝图任务之前任务的运行时间为 30 分钟或更长时间时,用户令牌将过期。因此,蓝图任务将失败。
      为确保管道的运行时间可超过 30 分钟,可以输入可选的 API 令牌。当 Code Stream 调用蓝图时,API 令牌将持续存在,并且蓝图任务将继续使用 API 令牌。
      使用 API 令牌作为变量时,将对其进行加密。否则,将以纯文本形式使用。
      为 Wordpress 应用程序部署添加蓝图任务。
  6. 运行管道。

    要验证每个任务是否已成功完成,请单击正在执行的任务,然后检查部署详细信息中的状态,以查看详细资源信息。

  7. 在 GitHub 中,将 Wordpress 服务器实例的特定实例从 small 修改为 medium
    当您提交更改时,管道将触发。它会从 GitHub 存储库中提取更新的代码,并构建您的应用程序。
    WebTier:
        type: Cloud.Machine    
        properties:     
            name: wordpress      
            image: 'ubuntu-16'      
            flavor: 'medium'      
            constraints:        
                - tag: zone:dev
  8. 重新运行管道,验证管道是否已成功并且已将 Wordpress 实例的特定实例从 small 更改为 medium

结果

恭喜!您已自动执行从 YAML 蓝图部署的应用程序的发布。

后续步骤

要了解有关如何使用 Code Stream 的更多信息,请参见VMware Code Stream 使用教程

有关其他参考,请参见 供 VMware Code Stream 管理员和开发人员使用的更多资源