Drone CI 中文文档

在 Linux 上安装 Exec Runner

本文介绍了如何在 Linux 上安装 Exec Runner。Exec Runner 以二进制格式打包并作为 Github Release 分发。

下载 Exec Runner 程序

下载并解压二进制文件。你将需要修改以下命令以使用最新版本。

下载基于 amd64 架构的二进制文件:

curl -L https://github.com/drone-runners/drone-runner-exec/releases/latest/download/drone_runner_exec_linux_amd64.tar.gz | tar zx
sudo install -t /usr/local/bin drone-runner-exec

下载基于 i386 架构的二进制文件:

curl -L https://github.com/drone-runners/drone-runner-exec/releases/latest/download/drone_runner_exec_linux_i386.tar.gz | tar zx
sudo install -t /usr/local/bin drone-runner-exec

下载基于 32 位 arm 架构的二进制文件:

curl -L https://github.com/drone-runners/drone-runner-exec/releases/latest/download/drone_runner_exec_linux_arm.tar.gz | tar zx
sudo install -t /usr/local/bin drone-runner-exec

下载基于 64 位 arm 架构的二进制文件:

curl -L https://github.com/drone-runners/drone-runner-exec/releases/latest/download/drone_runner_exec_linux_arm64.tar.gz | tar zx
sudo install -t /usr/local/bin drone-runner-exec

配置 Exec Runner

Exec Runner 是使用环境变量文件配置的。环境文件位置由运行进程的用户决定。如果用户是 root:

/etc/drone-runner-exec/config

如果用户不是 root 用户:

~/.drone-runner-exec/config

该文件应使用语法 <variable>=value 将变量设置为指定值,并使用 # 表示注释。请注意,这不是 bash 文件。不支持 Bash 语法和 Bash 表达式。

DRONE_RPC_PROTO=https
DRONE_RPC_HOST=drone.company.com
DRONE_RPC_SECRET=super-duper-secret

本文引用了以下配置选项。有关配置选项的完整列表,请参阅 配置

  • DRONE_RPC_HOST
    提供 Drone Server 的主机名(和可选端口)。Runner 连接到指定主机地址的 Server 以接收 Pipeline 以执行。
  • DRONE_RPC_PROTO
    提供用于连接 Drone Server 的协议。该值必须是 httphttps
  • DRONE_RPC_SECRET
    提供用于向 Drone Server 进行身份验证的共享密钥。这必须与你的 Drone Server 配置中定义的 Secret 匹配。

日志记录

Exec Runner 将日志写入主机上的文件。在启动服务之前,应在环境文件中配置日志文件位置。文件位置由运行该进程的用户决定。如果用户是 root:

DRONE_LOG_FILE=/var/log/drone-runner-exec/log.txt

如果用户是非 root 用户:

DRONE_LOG_FILE=.drone-runner-exec/log.txt

日志文件的存放目录必须在启动服务之前先创建好:

mkdir /var/log/drone-runner-exec
mkdir .drone-runner-exec/

安装 Exec Runner

使用以下命令安装 Exec Runner 并启动服务。

drone-runner-exec service install
drone-runner-exec service start
上面的命令创建了一个初始化服务。你可能需要以 root 身份或使用 sudo 执行命令。

验证安装结果

检查日志并验证 Runner 是否成功建立了与 Drone Server 的连接。如果用户是 root:

$ cat /var/log/drone-runner-exec/log.txt

INFO[0000] starting the server
INFO[0000] successfully pinged the remote server

如果用户是非 root 用户:

$ cat ~/.drone-runner-exec/log.txt

INFO[0000] starting the server
INFO[0000] successfully pinged the remote server