作为开发人员,您需要一个管道,以在每次提交更改时都从内部部署 GitHub 实例中获取自动化云模板。您需要使用该管道将 WordPress 应用程序部署到 Amazon Web Services (AWS) EC2 或数据中心。 Code Stream 将从该管道调用云模板,并自动执行该云模板的持续集成和持续交付 (CICD) 以部署您的应用程序。
要创建并触发管道,您需要一个 VMware 云模板。
对于 Code Stream 云模板任务中的云模板源,可以选择以下两项之一:
- Cloud Assembly 模板,作为源控制。在这种情况下,不需要 GitLab 或 GitHub 存储库。
- 源控制(如果使用 GitLab 或 GitHub 作为源控制)。在这种情况下,必须具有 Git webhook 并通过该 webhook 触发管道。
如果您的 GitHub 存储库中有 YAML 云模板,并且希望在管道中使用该云模板,则需要执行以下操作。
- 在 Cloud Assembly 中,将云模板推送到 GitHub 存储库。
- 在 Code Stream 中,创建 Git 端点。然后,创建使用 Git 端点和管道的 Git webhook。
- 要触发管道,请更新 GitHub 存储库中的任何文件并提交所做的更改。
如果您的 GitHub 存储库中没有 YAML 云模板,并且希望使用源控制中的云模板,请使用以下过程了解如何操作。该过程展示了如何为 WordPress 应用程序创建云模板,并从内部部署 GitHub 存储库中触发该云模板。每当您更改 YAML 云模板时,管道都会触发并自动发布应用程序。
- 在 Cloud Assembly 中,将添加云帐户、添加云区域并创建云模板。
- 在 Code Stream 中,将为托管云模板的内部部署 GitHub 存储库添加端点。然后,将云模板添加到管道中。
以下用例示例展示了如何使用内部部署 GitHub 存储库中的云模板。
前提条件
- 在 vRealize Automation Cloud Assembly 基础架构中添加一个云帐户和一个云区域。请参见 vRealize Automation Cloud Assembly 文档。
- 要按照以下过程创建云模板,请将 WordPress YAML 代码复制到剪贴板。请参见 vRealize Automation Cloud Assembly 文档中 WordPress 用例中的云模板 YAML 代码。
- 将 WordPress 应用程序的 YAML 代码添加到 GitHub 实例。
- 为 Git 触发器添加 Webhook,以便管道可以在您提交更改时提取 YAML 代码。在 Code Stream 中,单击。
- 要使用云模板任务,您必须具有任意 Cloud Assembly 角色。
过程
- 在 Cloud Assembly 中,执行以下步骤。
- 单击 VMware Cloud Templates,然后为 WordPress 应用程序创建云模板和部署。
- 将已复制到剪贴板的 WordPress YAML 代码粘贴到云模板,然后部署该云模板。
- 在 Code Stream 中,创建端点。
- 为 YAML 文件所在的内部部署 GitHub 存储库添加 Git 端点。
- 添加电子邮件端点,以便可以在管道运行时向用户通知管道状态。
- 创建一个管道,并添加分别表示管道成功和失败的电子邮件通知。
- 添加开发阶段和云模板任务。
- 添加用于部署计算机的云模板任务,并将该任务配置为使用 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'
- 添加销毁计算机以释放资源的云模板任务。
- 添加生产阶段,并包含批准任务和部署任务。
- 添加用户操作任务,以指定需要批准才能将 WordPress 应用程序推送到生产环境。
- 添加用于部署计算机的云模板任务,并将其配置为使用 WordPress 应用程序的云模板 YAML。
选择
创建时,部署名称必须唯一。如果将名称留空,
Code Stream 将为其分配唯一的随机名称。
以下是您在自己的用例中选择
回滚时必须了解的内容:如果选择
回滚操作并输入
回滚版本,则版本必须采用
n-X 形式。例如,
n-1、
n-2、
n-3 等。如果在
Code Stream 以外的任何位置创建并更新部署,则允许回滚。
登录到
Code Stream 时,它将获取用户令牌,令牌有效时间为 30 分钟。如果管道持续运行时间长,则云模板任务之前任务的运行时间为 30 分钟或更长时间时,用户令牌将过期。因此,云模板任务将失败。
为确保管道的运行时间可超过 30 分钟,可以输入可选的 API 令牌。当
Code Stream 调用云模板时,API 令牌将持续存在,并且云模板任务将继续使用 API 令牌。
使用 API 令牌作为变量时,将对其进行加密。否则,将以纯文本形式使用。
- 运行管道。
要验证每个任务是否已成功完成,请单击正在执行的任务,然后检查部署详细信息中的状态,以查看详细资源信息。
- 在 GitHub 中,将 WordPress 服务器实例的特定实例从
small
修改为 medium
。
当您提交更改时,管道将触发。它会从 GitHub 存储库中提取更新的代码,并构建您的应用程序。
WebTier:
type: Cloud.Machine
properties:
name: wordpress
image: 'ubuntu-16'
flavor: 'medium'
constraints:
- tag: zone:dev
- 重新运行管道,验证管道是否已成功并且已将 WordPress 实例的特定实例从 small 更改为 medium。
结果
恭喜!您已自动执行从 YAML 云模板部署的应用程序的发布。
下一步做什么
要了解有关如何使用 Code Stream 的更多信息,请参见Code Stream 使用教程。
有关其他参考,请参见 供 Code Stream 管理员和开发人员使用的更多资源。