作为 DevOps 管理员或开发人员,您可以创建自定义脚本来扩展 Automation Pipelines 的功能。
使用您的脚本,可以将 Automation Pipelines 与您自己用于生成、测试和部署应用程序的持续集成 (CI) 和持续交付 (CD) 工具以及 API 集成。如果不想公开您的应用程序 API,则自定义脚本特别有用。
自定义脚本几乎可以执行与生成工具、测试工具和部署工具与 Automation Pipelines 集成所需的任何操作。例如,脚本可与管道工作区配合工作,以支持构建和测试应用程序的持续集成任务以及部署应用程序的持续交付任务。当管道已完成或发生其他许多事件时,自定义脚本可以向 Slack 发送消息。
Automation Pipelines 管道工作区支持使用 Docker 和 Kubernetes 执行持续集成任务和自定义任务。
有关配置工作区的详细信息,请参见配置管道工作区。
您可以采用受支持的语言之一编写自定义脚本。在脚本中,可以包括业务逻辑,以及定义输入和输出。输出类型可以包括数字、字符串、文本和密码。可以使用不同的业务逻辑、输入和输出创建自定义脚本的多个版本。
所创建的脚本位于 Automation Pipelines 实例中。可以导入 YAML 代码以创建自定义集成,也可以将脚本导出为 YAML 文件以在其他 Automation Pipelines 实例中使用。
在自定义任务中使用管道运行已发布的脚本版本。如果您有多个已发布版本,则可以将其中一个版本设置为最新版本,以便在选择自定义任务时显示最新 -->。
当管道使用自定义集成时,如果您尝试删除该自定义集成,则会显示一条错误消息,指示无法将其删除。
如果删除自定义集成,将移除自定义脚本的所有版本。如果现有管道的自定义任务使用任何版本的脚本,则该管道将失败。为了确保现有管道不会失败,可以弃用并撤消不再希望使用的脚本版本。如果没有管道使用该版本,便可以将其删除。
执行的操作... | 有关该操作的更多信息... |
---|---|
向管道添加自定义任务。 |
自定义任务:
|
在自定义任务中选择脚本。 |
在脚本中声明输入属性和输出属性。 |
保存管道,然后启用并运行管道。 |
当管道运行时,自定义任务将调用指定版本的脚本并运行其中的业务逻辑,从而将构建工具、测试工具和部署工具与 Automation Pipelines 集成。 |
管道运行之后,查看执行。 |
验证管道是否产生预期结果。 |
使用调用自定义集成版本的自定义任务时,可以在管道工作区选项卡上将自定义环境变量作为名称-值对包括在内。当生成器映像创建运行 CI 任务并部署映像的工作区容器时,Automation Pipelines 会将环境变量传递到该容器。
例如,当您的 Automation Pipelines 实例需要使用 Web 代理,并且使用 Docker 主机为自定义集成创建容器时,Automation Pipelines 将运行管道并将 Web 代理设置变量传递到该容器。
名称 | 值 |
---|---|
HTTPS_PROXY | http://10.0.0.255:1234 |
https_proxy | http://10.0.0.255:1234 |
NO_PROXY | 10.0.0.32, *.dept.vsphere.local |
no_proxy | 10.0.0.32, *.dept.vsphere.local |
HTTP_PROXY | http://10.0.0.254:1234 |
http_proxy | http://10.0.0.254:1234 |
PATH | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
名称-值对在用户界面中如下所示:
此示例创建的自定义集成将 Automation Pipelines 连接到 Slack 实例并向 Slack 通道发布消息。
前提条件
- 要编写自定义脚本,请确认您掌握以下语言之一:Python 2、Python 3 或 Node.js,或者掌握以下任意 shell 语言:Bash、sh 或 zsh。
- 使用已安装的 Node.js 或 Python 运行时生成容器映像。
过程
结果
恭喜!您已创建一个自定义集成脚本,该脚本将 Automation Pipelines 连接到 Slack 实例并向 Slack 通道发布消息。
下一步做什么
继续创建自定义集成以支持在管道中使用自定义任务,以便扩展 Automation Pipelines 在自动执行软件发布生命周期方面的功能。