WorkBuddy 快速开始:从安装到第一个自动化任务

1. 引言

WorkBuddy 是一款面向开发者和运维人员的自动化任务编排工具,它通过简洁的配置文件和命令行接口,帮助你把重复性的工作流程固化为可复用的自动化任务。本文将从零开始,带你完成 WorkBuddy 的安装、初始化、编写第一个任务,并逐步深入到参数传递、条件判断、定时调度等进阶用法。

在开始之前,请确保你的机器满足以下环境要求:

  • 操作系统:Linux / macOS / Windows(WSL 推荐)
  • 运行时:Python 3.9 及以上,或 Node.js 16 及以上
  • 网络:可访问官方软件源,用于下载依赖包

2. 安装 WorkBuddy

WorkBuddy 提供了多种安装方式,你可以根据自己的技术栈选择最合适的一种。

2.1 使用 pip 安装(Python 环境)

如果你使用 Python,推荐通过 pip 直接安装:

pip install workbuddy

安装完成后,验证版本号:

workbuddy --version

如果输出类似 workbuddy 0.9.2 的版本信息,说明安装成功。

2.2 使用 npm 安装(Node.js 环境)

对于 Node.js 用户,可以使用 npm 全局安装:

npm install -g workbuddy

同样验证安装结果:

workbuddy --version

2.3 使用 Docker 运行

如果你希望隔离环境,也可以直接使用官方 Docker 镜像:

docker pull workbuddy/workbuddy:latest
docker run --rm -v $(pwd):/workspace workbuddy/workbuddy:latest --version

这里把当前目录挂载到容器的 /workspace,方便容器内访问你的任务文件。

3. 初始化项目

安装完成后,我们需要创建一个 WorkBuddy 项目目录,并生成基础配置文件。

3.1 创建项目目录

mkdir my-workbuddy-demo
cd my-workbuddy-demo

3.2 初始化项目

在项目根目录执行初始化命令:

workbuddy init

执行后,WorkBuddy 会自动生成以下文件结构:

my-workbuddy-demo/
├── workbuddy.yaml          # 主配置文件
├── tasks/                  # 任务目录
│   └── hello.yaml          # 示例任务
└── logs/                   # 运行日志目录

其中 workbuddy.yaml 是全局配置文件,tasks/ 目录用于存放具体的任务定义文件。

3.3 查看默认配置

打开 workbuddy.yaml,内容大致如下:

project:
  name: my-workbuddy-demo
  version: 0.1.0
runner:
default: local
timeout: 300
logging:
level: info
output: logs/

这里定义了项目名称、默认执行器、超时时间以及日志级别。你可以根据实际需求调整这些参数。

4. 编写第一个任务

初始化完成后,我们来看一下自动生成的示例任务 tasks/hello.yaml

name: hello
description: 打印欢迎信息
steps:
  - echo:
      message: "Hello, WorkBuddy!"

这个任务非常简单:它只有一个步骤,调用内置的 echo 动作,输出一行欢迎信息。

4.1 运行任务

在项目根目录执行以下命令运行任务:

workbuddy run hello

运行结果如下:

[2026-09-12 18:00:01] INFO  Starting task: hello
[2026-09-12 18:00:01] INFO  Step 1/1: echo
Hello, WorkBuddy!
[2026-09-12 18:00:01] INFO  Task completed successfully

恭喜,你已经成功运行了第一个 WorkBuddy 任务。

4.2 任务文件结构说明

一个标准的 WorkBuddy 任务文件包含三个核心字段:

  • name:任务名称,用于命令行调用。
  • description:任务描述,便于阅读和维护。
  • steps:步骤列表,按顺序执行的动作集合。

5. 常用动作与参数传递

WorkBuddy 内置了丰富的动作库,下面介绍几个最常用的动作,以及如何在步骤之间传递参数。

5.1 执行 Shell 命令

使用 shell 动作可以执行任意系统命令:

name: system-info
description: 收集系统信息
steps:
  - shell:
      command: "uname -a"
  - shell:
      command: "df -h"

5.2 读写文件

使用 file.readfile.write 动作可以读写文件:

name: file-demo
description: 文件读写示例
steps:
  - file.write:
      path: "./output.txt"
      content: "这是写入的内容"
  - file.read:
      path: "./output.txt"

5.3 步骤间传递参数

WorkBuddy 支持通过 output 字段捕获步骤结果,并在后续步骤中引用:

name: param-demo
description: 参数传递示例
steps:
  - shell:
      command: "echo 'hello from shell'"
    output: shell_result
  - echo:
      message: "上一步的输出是:${shell_result}"

这里 ${shell_result} 会引用上一步捕获的输出内容。

6. 条件判断与循环

真实场景中,任务往往需要根据条件分支执行,或者对一组数据重复处理。

6.1 条件判断

使用 when 字段可以为步骤添加执行条件:

name: conditional-demo
description: 条件判断示例
steps:
  - shell:
      command: "test -f /etc/passwd"
    output: passwd_exists
  - echo:
      message: "文件存在"
    when: "${passwd_exists} == true"
  - echo:
      message: "文件不存在"
    when: "${passwd_exists} == false"

6.2 循环处理

使用 foreach 可以对列表数据逐项处理:

name: loop-demo
description: 循环处理示例
steps:
  - foreach:
      items: ["apple", "banana", "cherry"]
      as: fruit
      do:
        - echo:
            message: "当前水果:${fruit}"

运行后,会依次输出三种水果的名称。

7. 定时调度任务

WorkBuddy 支持通过 cron 表达式配置定时任务,适合周期性执行的场景。

7.1 配置定时任务

workbuddy.yaml 中增加 schedule 配置:

project:
  name: my-workbuddy-demo
  version: 0.1.0
runner:
default: local
timeout: 300
logging:
level: info
output: logs/
schedule:
task: hello
cron: "0 9 * * *"

上面的配置表示每天上午 9 点执行一次 hello 任务。

7.2 启动调度器

执行以下命令启动调度器:

workbuddy schedule

调度器会常驻后台,按照 cron 表达式触发对应的任务。

8. 实战:日志清理任务

下面我们综合运用前面学到的知识,编写一个实用的日志清理任务。该任务会删除指定目录下超过 7 天的 .log 文件。

name: clean-logs
description: 清理超过 7 天的日志文件
steps:
  - shell:
      command: "find ./logs -name '*.log' -mtime +7"
    output: old_files
  - shell:
      command: "find ./logs -name '*.log' -mtime +7 -delete"
    when: "${old_files} != ''"
  - echo:
      message: "日志清理完成"

这个任务先查找符合条件的旧日志文件,如果存在则执行删除,最后输出完成提示。

9. 常见问题与排查

在使用过程中,你可能会遇到一些常见问题,这里给出对应的排查思路。

问题现象可能原因解决方法
命令找不到 workbuddy未正确安装或 PATH 未配置重新执行安装命令,检查 PATH 环境变量
任务运行超时步骤执行时间超过 timeout 配置在 workbuddy.yaml 中调大 timeout 值
参数引用为空上一步未正确捕获 output检查 output 字段名称是否一致
定时任务未触发cron 表达式错误或调度器未启动校验 cron 语法,确认 schedule 命令在运行

10. 总结

本文从安装、初始化、编写第一个任务开始,逐步介绍了 WorkBuddy 的常用动作、参数传递、条件判断、循环处理、定时调度等核心能力,并通过一个日志清理的实战案例串联了全部知识点。

WorkBuddy 的价值在于把零散的运维和开发操作沉淀为可复用、可调度的自动化任务。建议你从自己日常最重复的操作入手,逐步积累自己的任务库。更多高级用法,可以参考官方文档中的动作参考和最佳实践章节。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值