open-nomad/website/content/docs/install/index.mdx

273 lines
7.5 KiB
Plaintext

---
layout: docs
page_title: Installing Nomad
sidebar_title: Installing Nomad
description: Learn how to install Nomad.
---
# Installing Nomad
Nomad is available as a pre-compiled binary or as a package for several
operating systems. You can also [build Nomad from source](#from-source).
-> If you are interested in trialing Nomad without installing it locally, see the
[Quickstart](/docs/install/quickstart) for options to get started with Nomad.
<Tabs>
<Tab heading="Manual installation">
You can download a [precompiled binary](/downloads) 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
that the `nomad` binary is available on your `PATH` before continuing with the
other guides.
You can check the locations available on your path by running this command.
```shell-session
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
```
The output is a list of locations separated by colons. You can make Nomad
available by moving the binary to one of the listed locations, or by adding
Nomad's location to your `PATH`.
-> **Tip (Linux-based or Mac):** 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 file name after the `.` and before `rc` is the name of
your shell). In that file you will see a line that starts with `export PATH=`,
followed by a colon-separated list of locations. Add the location of the Consul
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.
-> **Tip (Windows):** Add a location to your path via the GUI by navigating to
`Environment Variables` in your system settings, and looking for the variable
called `PATH`. You will see a semicolon-separated list of locations. Add the
Nomad binary's location to that list and then launch a new console window.
</Tab>
<Tab heading="Linux Packages">
HashiCorp officially maintains and signs packages for the following Linux
distributions.
<Tabs>
<Tab heading="Ubuntu/Debian">
Add the HashiCorp [GPG key][gpg-key].
```shell-session
$ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
```
Add the official HashiCorp Linux repository.
```shell-session
$ sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
```
Update and install.
```shell-session
$ sudo apt-get update && sudo apt-get install nomad
```
</Tab>
<Tab heading="CentOS/RHEL">
Install `yum-config-manager` to manage your repositories.
```shell-session
$ sudo yum install -y yum-utils
```
Use `yum-config-manager` to add the official HashiCorp Linux repository.
```shell-session
$ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
```
Install.
```shell-session
$ sudo yum -y install nomad
```
</Tab>
<Tab heading="Fedora">
Install `dnf config-manager` to manage your repositories.
```shell-session
$ sudo dnf install -y dnf-plugins-core
```
Use `dnf config-manager` to add the official HashiCorp Linux repository.
```shell-session
$ sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
```
Install.
```shell-session
$ sudo dnf -y install nomad
```
</Tab>
<Tab heading="Amazon Linux">
Install `yum-config-manager` to manage your repositories.
```shell-session
$ sudo yum install -y yum-utils
```
Use `yum-config-manager` to add the official HashiCorp Linux repository.
```shell-session
$ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
```
Install.
```shell-session
$ sudo yum -y install nomad
```
</Tab>
</Tabs>
-> **TIP:** Now that you have added the HashiCorp repository, you can install
[Consul](https://learn.hashicorp.com/consul) and
[Vault](https://learn.hashicorp.com/vault) with the same command.
</Tab>
<Tab heading="Homebrew (macOS)">
[Homebrew](https://brew.sh) is a free and open-source package management system
for macOS. Install the [Nomad formula](https://formulae.brew.sh/formula/nomad)
from the terminal.
```shell-session
$ brew install nomad
```
~> **NOTE:** Homebrew and the Nomad formula are **NOT** directly maintained by
HashiCorp. The latest version of Nomad is always available by manual
installation.
~> **NOTE**: On macOS, machines without a Java environment installed will be
prompted to install Java because of a [known issue—#7865][gh-7865]. The linked
GitHub issue has workarounds for this issue.
</Tab>
<Tab heading="Chocolatey (Windows)">
[Chocolatey](https://chocolatey.org/) is a free and open-source package
management system for Windows. Install the [Nomad
package](https://chocolatey.org/packages/nomad) from the command-line.
```shell-session
$ choco install nomad
```
~> **NOTE:** Chocolatey and the Nomad package are **NOT** directly maintained
by HashiCorp. The latest version of Nomad is always available by manual
installation.
</Tab>
</Tabs>
---
## Verify the Installation
To verify Nomad was installed correctly, try the `nomad` command.
```shell-session
$ nomad
```
You should see help output, similar to the following.
```plaintext
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
deployment Interact with deployments
eval Interact with evaluations
exec Execute commands in task
monitor Stream logs from a Nomad agent
namespace Interact with namespaces
operator Provides cluster-level tools for Nomad operators
quota Interact with quotas
sentinel Interact with Sentinel policies
server Interact with servers
system Interact with the system API
ui Open the Nomad Web UI
version Prints the Nomad version
```
---
## Compiling from Source ((#from-source))
To compile from source, you will need [Go](https://golang.org) installed and
configured properly (including a `GOPATH` environment variable set), as well
as a copy of [`git`](https://www.git-scm.com/) in your `PATH`.
1. Clone the Nomad repository from GitHub into your `GOPATH`:
```shell-session
$ mkdir -p $GOPATH/src/github.com/hashicorp && cd $_
$ git clone https://github.com/hashicorp/nomad.git
$ cd nomad
```
1. Bootstrap the project. This will download and compile libraries and tools
needed to compile Nomad:
```shell-session
$ make bootstrap
```
1. Build Nomad for your current system and put the
binary in `./bin/` (relative to the git checkout). The `make dev` target is
just a shortcut that builds `nomad` for only your local build environment (no
cross-compiled targets).
```shell-session
$ make dev
```
[consul-dev]: https://learn.hashicorp.com/consul/getting-started/agent#starting-the-agent
[consul-download]: https://www.consul.io/downloads
[destroy]: https://www.vagrantup.com/docs/cli/destroy
[gh-7865]: https://github.com/hashicorp/nomad/issues/7865
[gpg-key]: https://apt.releases.hashicorp.com/gpg 'HashiCorp GPG key'