Buddy自动化运维:自定义操作(极品文档)

自定义操作

介绍

在默认操作列表顶部,用户可以在YAML中定义自己的操作并在流水线中使用。操作在从Docker Hub注册中心拉取的镜像于启动的Docker容器中运行,Docker容器就像一个预装了操作系统、工具和依赖项的本地开发环境。在容器中,您可以对存储仓文件运行命令,运行对任何公开可用的第三方API的调用,并将输入数据导出到变量以在流水线中的其他操作中使用。

定义

自定义操作由三个元素定义:

  1. YAML配置(必填)
  2. 图标(选填)
  3. 描述(选填)

所有三个元素都必须上传到存储仓的默认分支:

  1. 在存储仓的根目录中(单个操作)
  2. .buddy/actions目录中,每个操作都在其自己的子目录中(多个操作),例如:
.buddy/actions/myaction-1
.buddy/actions/myaction-2
.buddy/actions/myaction-3

一旦将操作添加到存储仓后,Buddy会自动解析操作并显示于操作列表顶部:


自定义操作于操作列表

添加的操作可用于工作区中的所有项目,然而,我们建议将您的操作存储在具体的存储仓中。通过这种方式,将它们与您的源代码隔离开来,您可以轻松跟踪其开发记录、发布更新和修复问题。如果需要,您还可以跨多个工作区共享此存储仓中的操作。

图标

图标显示于操作磁贴和配置屏幕上

  • 名称:必须是action
  • 扩展名:jpg、jpeg、png、svg
  • 尺寸:最小40x40像素,可扩展大小尺寸

提示
当没有提供图标时,Buddy将使用系统默认图标。

描述

一个操作可以有一个README.md文件形式的描述。我们建议将此类文件上传到您的操作目录,并附上操作的说明以及所需的参数、命令和变量。您还可以添加包含更新列表的变更日志,以跟踪您的操作演变记录。

YAML配置

自定义操作以类似于默认Buddy操作的方式定义为代码,您可以定义以下事项:

1. 名称
2. 输入
3. 执行命令(选填)
4. 文件系统与缓存(选填)
5. Docker镜像(例如:运行环境)
6. 输出(选填)

示例

在此,我们可以看到有三个输入项的一个操作:用户、IP与密码。输入作为变量传递命令,命令在Ubuntu最新版本环境中运行。

name: "My_Action"
inputs:
  user:
    type: TEXT
    required: true
  ip:
    type: TEXT
  password:
    type: PASSWORD
    required: true
execute_commands:
  - echo $user@$ip -p $password
docker_image_name: "ubuntu"
docker_image_tag: "latest"

名称与分类

操作名称在整个工作区中必须独特,即不能与默认操作列表中的任何操作名称相同。如果名称不独特,则会出现解析错误。默认情况下,下划线被解析为空格键。例如,名为“My_Custom_Action”的操作将显示为“My Custom Action”。

默认情况下,自定义操作会添加到操作列表的自定义/热门部分。您可以通过将分类category参数添加到YAML文件来定义自己的分类:

name: "My_Custom_Action"
category: "Example Inputs"

输入

输入可让您指定操作所需的数据。您可以添加单行或多行文本输入、复选框、命令字段、选择器等等。

在此示例中,我们可以看到两个输入:一个是用于用户名的简单文本输入,第二个是用于密码的掩码输入。这两个字段为必填。

inputs:
  user:
    type: TEXT
    required: true
  ip:
  password:
    type: PASSWORD
    required: true

命令

默认情况下,该操作会运行Docker镜像中内置的命令。您可以通过添加execute_commands参数来覆盖这些命令:

execute_commands:
  - echo $user@$ip -p $password

提示
默认情况下,该操作会运行Docker镜像中内置的命令。如果定义了execute_commands,则不会运行镜像命令。

文件系统与缓存

如果您的操作需要存储仓里的文件,则需要附加流水线文件系统,例如定义volume_mappings参数。文件系统是每个流水线的专用目录。当运行流水线时,Buddy会将存储仓拉取到文件系统,允许您在其中运行命令。处理后的文件和工件保留在文件系统中,供流水线中的其他操作使用。

volume_mappings:
 - /:/buddy

您还可以使用cached_dirs参数缓存附加的目录。如果您的操作在每次运行时都下载文件,则此功能很有用——缓存文件将加快执行时间。

volume_mappings:
 - /:/buddy
working_directory: "/buddy/example-folder"
cached_dirs:
 - "/cache-local"
 - "/cache-application"

提示
默认情况下

  1. 没有挂载文件系统
  2. 没有附加目录(cached_dirs)被缓存
  3. 工作目录仍然保持在Docker镜像中定义的状态

Docker镜像

自定义操作在由用户定义镜像启动的隔离容器中运行。Docker镜像必须存储在Docker Hub上,并且可供公开访问。如果您的操作不需要特定的语言和/或框架,我们建议您使用最新版本的官方Ubuntu镜像。

docker_image_name: "ubuntu" 
docker_image_tag: "latest"

提示
镜像不能定义入口点,否则它将无法工作。您可以通过将reset_entrypoint: true添加到配置中来清除入口点。

输出

当运行操作时,将输入值作为不可设置的环境变量传递给容器。这些变量可以使用output参数在操作中生成:

inputs:
  first_input:
output:
  variables:
    first_input:
      example: "The description of the variable."
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值