跳到主要内容

代理

代理通过命令行或环境变量配置。至少您需要以下信息:

WOODPECKER_SERVER=localhost:9000
WOODPECKER_AGENT_SECRET="your-shared-secret-goes-here"

以下内容会自动设置,可以覆盖:

  • WOODPECKER_HOSTNAME 如果未设置,则变为操作系统的主机名
  • WOODPECKER_MAX_WORKFLOWS 如果未设置,默认为 1

每个代理的工作流

默认情况下,代理上并行执行的最大工作流数为 1。如果需要,您可以添加 WOODPECKER_MAX_WORKFLOWS 来增加代理的并行处理能力。

WOODPECKER_SERVER=localhost:9000
WOODPECKER_AGENT_SECRET="your-shared-secret-goes-here"
WOODPECKER_MAX_WORKFLOWS=4

代理注册

代理启动时使用 WOODPECKER_AGENT_SECRET 中的令牌连接到服务器。服务器识别代理并在数据库中注册代理(如果之前未连接)。

连接代理到服务器有两种类型的令牌:

使用系统令牌

系统令牌 是系统范围使用的令牌,例如,当您在服务器和代理上都设置相同的令牌到 WOODPECKER_AGENT_SECRET 时。

在这种情况下,注册过程如下:

  1. 代理第一次与服务器通信时,使用系统令牌
  2. 服务器在数据库中注册代理(如果之前未完成),并生成唯一 ID,然后发送回代理
  3. 代理将接收到的 ID 存储在文件中(由 WOODPECKER_AGENT_CONFIG_FILE 配置)
  4. 在后续启动时,代理使用系统令牌 其接收到的 ID 来向服务器标识自己

使用代理令牌

代理令牌 是仅由特定代理使用的令牌。此唯一令牌通过 WOODPECKER_AGENT_SECRET 应用于代理。

要获取 代理令牌,您必须使用 UI 在服务器中手动注册代理:

  1. 管理员在 设置 -> 代理 -> 添加代理 手动注册新代理 代理创建 代理已创建
  2. 必须使用 WOODPECKER_AGENT_SECRET 将上一步生成的令牌提供给代理
  3. 代理将使用提供的令牌连接到服务器,并更新 UI 中的状态: 代理已连接

环境变量

服务器

  • 名称: WOODPECKER_SERVER
  • 默认值: localhost:9000

配置服务器的 gRPC 地址。


用户名

  • 名称: WOODPECKER_USERNAME
  • 默认值: x-oauth-basic

gRPC 用户名。


代理密钥

  • 名称: WOODPECKER_AGENT_SECRET
  • 默认值: 无

服务器和代理用于认证通信的共享密钥。可以使用 openssl rand -hex 32 生成密钥。


代理密钥文件

  • 名称: WOODPECKER_AGENT_SECRET_FILE
  • 默认值: 无

从指定文件路径读取 WOODPECKER_AGENT_SECRET 的值,例如 /etc/woodpecker/agent-secret.conf


日志级别

  • 名称: WOODPECKER_LOG_LEVEL
  • 默认值: info

配置日志级别。可能的值有 trace, debug, info, warn, error, fatal, panic, disabled 和空值。


调试美观输出

  • 名称: WOODPECKER_DEBUG_PRETTY
  • 默认值: false

启用美观的调试输出。


调试无颜色

  • 名称: WOODPECKER_DEBUG_NOCOLOR
  • 默认值: true

禁用彩色调试输出。


主机名

  • 名称: WOODPECKER_HOSTNAME
  • 默认值: 无

配置代理主机名。


代理配置文件

  • 名称: WOODPECKER_AGENT_CONFIG_FILE
  • 默认值: /etc/woodpecker/agent.conf

配置代理配置文件路径。


最大工作流

  • 名称: WOODPECKER_MAX_WORKFLOWS
  • 默认值: 1

配置并行工作流的数量。


代理标签

  • 名称: WOODPECKER_AGENT_LABELS
  • 默认值: 无

为代理配置自定义标签,以允许工作流按其过滤。 使用键值对列表,如 key=value,second-key=** 可以用作通配符。 默认情况下,代理提供三个额外的标签 platform=os/arch, hostname=my-agentrepo=*,如有需要可以覆盖。 要了解标签如何工作,请查看管道语法页面


健康检查

  • 名称: WOODPECKER_HEALTHCHECK
  • 默认值: true

启用健康检查端点。


健康检查地址

  • 名称: WOODPECKER_HEALTHCHECK_ADDR
  • 默认值: :3000

配置健康检查端点地址。


保持活动时间

  • 名称: WOODPECKER_KEEPALIVE_TIME
  • 默认值: 无

在没有活动的这段时间后,代理会 ping 服务器以检查传输是否仍然活跃。


保持活动超时

  • 名称: WOODPECKER_KEEPALIVE_TIMEOUT
  • 默认值: 20s

在进行保持活动检查 ping 后,代理等待这段时间,如果没有活动则关闭连接。


gRPC 安全

  • 名称: WOODPECKER_GRPC_SECURE
  • 默认值: false

配置到 WOODPECKER_SERVER 的连接是否应使用安全传输。


gRPC 验证

  • 名称: WOODPECKER_GRPC_VERIFY
  • 默认值: true

配置是否应验证 gRPC 服务器证书,仅在 WOODPECKER_GRPC_SECUREtrue 时有效。


后端

  • 名称: WOODPECKER_BACKEND
  • 默认值: auto-detect

配置用于运行管道的后端引擎。可能的值有 auto-detect, docker, localkubernetes

BACKEND_DOCKER_*

请参阅 Docker 后端配置


BACKEND_K8S_*

请参阅 Kubernetes 后端配置


BACKEND_LOCAL_*

请参阅 本地后端配置

高级设置

注意

只有在您知道自己在做什么的情况下才更改这些设置。

连接重试次数

  • 名称: WOODPECKER_CONNECT_RETRY_COUNT
  • 默认值: 5

配置代理重试连接服务器的次数。

连接重试延迟

  • 名称: WOODPECKER_CONNECT_RETRY_DELAY
  • 默认值: 2s

配置代理连接服务器重试之间的延迟。