Nomad is available as a pre-compiled binary or as a package for several operating systems. You can also build Nomad from source.
If you are interested in trialing Nomad without installing it locally, see the Quickstart for options to get started with Nomad.
You can download a precompiled binary and
run it on your machine locally. You can also verify the binary using the
available SHA-256 sums. After downloading Nomad, unzip the package. Make sure
nomad binary is available on your
PATH before continuing with the
These steps are considered optional but can be helpful for running Nomad and to take advantage of additional Nomad functionalities.
Add the Nomad binary to your system path
Permanently add a new location to your path by editing your shell's settings
file (usually called something like
~/.bashrc, where the part of the filename
. and before
rc is the name of your shell). In that file you
should see a line that starts with
export PATH=, followed by a
colon-separated list of locations. Add the location of the Nomad binary to that
list and save the file. Then reload your shell's configuration with the command
source ~/.bashrc, replacing
bash with the name of your shell.
Install CNI plugins
Nomad uses CNI plugins to configure network namespaces when using the
network mode. All Linux Nomad client nodes using network namespaces must have
CNI plugins installed.
The following commands install the CNI reference plugins.
$ curl -L -o cni-plugins.tgz "https://github.com/containernetworking/plugins/releases/download/v1.0.0/cni-plugins-linux-$( [ $(uname -m) = aarch64 ] && echo arm64 || echo amd64)"-v1.0.0.tgz && \ sudo mkdir -p /opt/cni/bin && \ sudo tar -C /opt/cni/bin -xzf cni-plugins.tgz
Ensure your Linux operating system distribution has been configured to allow container traffic through the bridge network to be routed via iptables. These tunables can be set as follows.
$ echo 1 | sudo tee /proc/sys/net/bridge/bridge-nf-call-arptables && \ echo 1 | sudo tee /proc/sys/net/bridge/bridge-nf-call-ip6tables && \ echo 1 | sudo tee /proc/sys/net/bridge/bridge-nf-call-iptables
To preserve these settings on startup of a client node, add a file including the
/etc/sysctl.d/ or remove the file your Linux distribution puts in
net.bridge.bridge-nf-call-arptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1
To verify Nomad was installed correctly, try the
You should see help output, similar to the following.
Usage: nomad [-version] [-help] [-autocomplete-(un)install] <command> [args] Common commands: run Run a new job or update an existing job stop Stop a running job status Display the status output for a resource alloc Interact with allocations job Interact with jobs node Interact with nodes agent Runs a Nomad agent Other commands: acl Interact with ACL policies and tokens agent-info Display status information about the local agent config Interact with configurations deployment Interact with deployments eval Interact with evaluations exec Execute commands in task fmt Rewrites Nomad config and job files to canonical format license Interact with Nomad Enterprise License login Login to Nomad using an auth method monitor Stream logs from a Nomad agent namespace Interact with namespaces operator Provides cluster-level tools for Nomad operators plugin Inspect plugins quota Interact with quotas recommendation Interact with the Nomad recommendation endpoint scaling Interact with the Nomad scaling endpoint sentinel Interact with Sentinel policies server Interact with servers service Interact with registered services system Interact with the system API tls Generate Self Signed TLS Certificates for Nomad ui Open the Nomad Web UI var Interact with variables version Prints the Nomad version volume Interact with volumes
To compile from source, you will need Go installed at the
version described by the .go-version file. You should properly
configure your Go environment, including setting a
GOPATH environment variable
GOPATH/bin is within your
PATH. A copy of
git is also needed in your
Clone the Nomad repository from GitHub into your
$ mkdir -p $GOPATH/src/github.com/hashicorp && cd $_ $ git clone https://github.com/hashicorp/nomad.git $ cd nomad
Bootstrap the project. This will download and compile libraries and tools needed to compile Nomad:
$ make bootstrap
Build Nomad for your current system and put the binary in
./bin/(relative to the git checkout). The
make devtarget is just a shortcut that builds
nomadfor only your local build environment (no cross-compiled targets).
$ make dev