Installation

This article explains how to install the Nomad. The Nomad runner is packaged as a minimal Docker image distributed on DockerHub.

Download

Install Docker and pull the public image:

$ docker pull drone/drone-runner-nomad:latest

Configuration

The Nomad runner is configured using environment variables. 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.
  • DRONE_JOB_DATACENTER
    provides the datacenter used when scheduling Nomad jobs. The value is optional and defaults to dc1 if unspecified.
  • DRONE_JOB_REGION
    provides the region used when scheduling Nomad jobs.
  • DRONE_JOB_REGION
    provides the namespace used when scheduling Nomad jobs.
  • NOMAD_TOKEN
    provides the Nomad token.
  • NOMAD_*
    the system supports all NOMAD_ client configuration parameters as defined in the Nomad client documentation.

Installation

The below command creates the a container and start the Docker runner. Remember to replace the environment variables below with your Drone server details.

$ docker run -d \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e DRONE_RPC_PROTO=https \
  -e DRONE_RPC_HOST=drone.company.com \
  -e DRONE_RPC_SECRET=super-duper-secret \
  -e NOMAD_ADDR=http://nomad.company.com:4646 \
  -e NOMAD_TOKEN=super-secret-token \
  --restart always \
  --name runner \
  drone/drone-runner-nomad:latest

Verification

Use the docker logs command to view the logs and verify the runner successfully established a connection with the Drone server.

$ docker logs runner

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