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

要创建并触发管道,您需要 Automation Assembler 中的一个云模板。

对于 Automation Pipelines 云模板任务中的模板源,可以选择以下两项之一:

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

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

  1. Automation Assembler 中,将云模板推送到 GitHub 存储库。
  2. Automation Pipelines 中,创建 Git 端点。然后,创建使用 Git 端点和管道的 Git webhook。
  3. 要触发管道,请更新 GitHub 存储库中的任何文件并提交所做的更改。

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

  • Automation Assembler 中,将添加云帐户、添加云区域并创建云模板。
  • Automation Pipelines 中,将为托管云模板的内部部署 GitHub 存储库添加端点。然后,将云模板添加到管道中。

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

该工作流可帮助您了解自动执行从 YAML 云模板部署的应用程序的发布过程。

前提条件

  • 将 WordPress 应用程序的 YAML 代码添加到 GitHub 实例。
  • 为 Git 触发器添加 Webhook,以便管道可以在您提交更改时提取 YAML 代码。在 Automation Pipelines 中,单击触发器 > Git > 适用于 Git 的 Webhook
  • 要使用云模板任务,您必须具有任意 Automation Assembler 角色。

过程

  1. Automation Assembler 中,执行以下步骤。
    1. 单击模板,然后为 WordPress 应用程序创建云模板和部署。
    2. 将已复制到剪贴板的 WordPress YAML 代码粘贴到云模板,然后部署该云模板。
      通过使用 YAML 代码,云模板会在部署中创建数据库层、Web 层和网络。
  2. Automation Pipelines 中,创建端点。
    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。
      选择 创建时,部署名称必须唯一。如果将名称留空, Automation Pipelines 将为其分配唯一的随机名称。
      以下是您在自己的用例中选择 回滚时必须了解的内容:如果选择 回滚操作并输入 回滚版本,则版本必须采用 n-X 形式。例如, n-1n-2n-3 等。如果在 Automation Pipelines 以外的任何位置创建并更新部署,则允许回滚。
      云模板任务可以使用 Automation Assembler 中的 VMware 云模板,或者从 GitLab 存储库或 GitHub 存储库中的源控制提取一个。
  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 云模板部署的应用程序的发布。

下一步做什么

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

有关详细信息,请参见 VMware Aria Automation 入门》下的其他资源。