This article explains how to install the exec runner on Linux. The exec runner is packaged in binary format and distributed as a Github release.
Download
Download and unpack the binary. You will need to modify the below commands to use the latest release.
Download for amd64 architectures:
$ 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
Download for i386 architectures:
$ 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
Download for 32-bit 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
Download for 64-bit 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
Configuration
The exec runner is configured using an environment variable file. The environment file location is determined by the user running the process. If the user is root:
/etc/drone-runner-exec/config
If the user is not-root:
~/.drone-runner-exec/config
This file should use the syntax <variable>=value
which sets the variable to the given value and #
for comments. Please note this is not a bash file. Bash syntax and Bash expressions are not supported.
DRONE_RPC_PROTO=https
DRONE_RPC_HOST=drone.company.com
DRONE_RPC_SECRET=super-duper-secret
This article references the below configuration options. See Configuration for a complete list of configuration options.
- DRONE_RPC_HOST
- provides the hostname (and optional port) of your Drone server. The runner connects to the server at the host address to receive pipelines for execution.
- DRONE_RPC_PROTO
- provides the protocol used to connect to your Drone server. The value must be either http or https.
- DRONE_RPC_SECRET
- provides the shared secret used to authenticate with your Drone server. This must match the secret defined in your Drone server configuration.
Logging
The exec runner writes logs to a file on the host machine. The log file location should be configured in the environment file before you start the service. The file location is determined by the user running the process. If the user is root:
DRONE_LOG_FILE=/var/log/drone-runner-exec/log.txt
If the user is non-root:
DRONE_LOG_FILE=.drone-runner-exec/log.txt
The log file directory must be created before you start the service:
$ mkdir /var/log/drone-runner-exec
$ mkdir .drone-runner-exec/
Installation
Install and start the service.
$ drone-runner-exec service install
$ drone-runner-exec service start
Verification
Inspect the logs and verify the runner successfully established a connection with the Drone server. If the user is root:
$ cat /var/log/drone-runner-exec/log.txt
INFO[0000] starting the server
INFO[0000] successfully pinged the remote server
If the user is non-root:
$ cat ~/.drone-runner-exec/log.txt
INFO[0000] starting the server
INFO[0000] successfully pinged the remote server