HashiCorp Nomad Clients (cluster)

Deploy additional HashiCorp Nomad clients to horizontally scale an existing HashiCorp Nomad cluster.

This app deploys three, five, or seven Linode instances as clients, each with the plan type and size you select. Each of these Linode instances will appear on your invoice as separate items.

📘

Deploy a HashiCorp Nomad (cluster) first if you haven't already. If you'd rather deploy Nomad on a single instance, see HashiCorp Nomad.

1. Deploy the HashiCorp Nomad Clients cluster

 Estimated deployment time: 15–20 minutes

Follow the deployment instructions from the Get started section to configure the app, deploy it, and verify software installation.

For information on the app-specific configurations, see the Configuration options section.

Base distribution and plan

  • Supported distribution: Ubuntu 24.04 LTS
  • Recommended plan: Nomad clients can be of any size.
  • Region: Select the same region as your existing Nomad cluster.

Configuration options

Configure the required options to deploy your instance. For additional customization, add advanced options.

The table maps the Cloud Manager UI fields to their corresponding API/CLI keys (stackscript_data) required for automated deployments.

StackScript ID: 1226545

UI fieldAPI/CLI keyDescription
Required options
Linode API tokentoken_passwordA valid Linode API token used to deploy the additional Linode instances that make up this cluster.
Follow Manage personal access tokens to get a token on your account with Read/Write access to Linodes.
Limited sudo usersudo_usernameYour preferred username for the limited sudo user, entered without any capital letters, spaces, or special characters.
When adding a limited sudo user, the user is created with a strong generated password for your new Linode instance, and the account is assigned to the sudo group, which provides elevated permissions when running commands with the sudo prefix.
Note: For easier and more secure access with the sudo user, add an account SSH key for the Cloud Manager user during deployment and select that user as an authorized_user. Their SSH pubkey will be assigned to both the root and limited sudo users.
consul_nomad_autojoin_token generated by Nomad Server OCCconsul_nomad_autojoin_token_passwordThe token generated by the HashiCorp Nomad cluster deployment, found in the ~/.deployment-secrets.txt file on your original cluster.
cluster_uuid tag for the Nomad Server OCC being joined tocluster_uuidThe tag applied to the HashiCorp Nomad cluster deployment, found in the ~/.deployment-secrets.txt file on your original cluster or in Cloud Manager.
Advanced options
Cluster SettingsclusterheaderSet to Yes by default. Details of the cluster settings, including the client count and whether to add account SSH keys to all nodes.
Add Account SSH Keys to All Nodesadd_ssh_keysWhen set to yes, any SSH Keys that are added to the root user account (in the SSH Keys section), are also added to your limited user account on all deployed Linode instances. Possible values are yes or no. Defaults to yes.
Nomad Client Countcluster_sizeThe number of additional Nomad clients to deploy. Possible values are 3, 5, or 7. Defaults to 3.

Note: After the app deployment completes, the password for your limited sudo user is generated and stored in the ~/.deployment-secrets.txt file in the home directory. Log in to your instance as root through the Lish console or SSH, then run cat ~/.deployment-secrets.txt to view its contents.

Use API, CLI, or Terraform

In addition to deploying the app to a new Linode instance via Cloud Manager, you can also use the Linode API, CLI, or Terraform. When running the operation, you need to provide the StackScript ID, supported Linux distribution, and app-specific fields along with the standard Linode deployment configurations.

Note: Generate a personal access token to authenticate your API, CLI, or Terraform requests.

curl --location 'https://api.linode.com/v4/linode/instances' \
    --header 'Content-Type: application/json' \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer abc123def456hij789klm' \
    --data-raw '{
        "region": "us-east",
        "type": "g6-standard-2",
        "image": "linode/ubuntu24.04",
        "label": "my-nomad-clients-cluster-one-click-app",
        "root_pass": "@C0mpl3x#P@ssw0rd",
        "stackscript_id": 1226545,
        "stackscript_data": {
            "token_password": "abc123def456hij789klm",
            "sudo_username": "jsmith",
            "consul_nomad_autojoin_token_password": "zy9x87w65vut43strq21p",
            "cluster_uuid": "1a23bc-4de5f6-g78h9i-j012kl3456mn7opq9"
        }
    }'
linode-cli linodes create \
    --region us-east \
    --type g6-standard-2 \
    --label my-nomad-clients-cluster-one-click-app \
    --image linode/ubuntu24.04 \
    --root_pass @C0mpl3x#P@ssw0rd \
    --stackscript_id 1226545 \
    --stackscript_data '{"token_password":"abc123def456hij789klm", "sudo_username":"jsmith", "consul_nomad_autojoin_token_password":"zy9x87w65vut43strq21p", "cluster_uuid":"1a23bc-4de5f6-g78h9i-j012kl3456mn7opq9"}'
resource "linode_instance" "my-linode" {
    region         = "us-east"
    type           = "g6-standard-2"
    label          = "my-nomad-clients-cluster-one-click-app"
    image          = "linode/ubuntu24.04"
    root_pass      = "@C0mpl3x#P@ssw0rd"
    stackscript_id = 1226545
    stackscript_data = {
        "token_password"                       = "abc123def456hij789klm"
        "sudo_username"                        = "jsmith"
        "consul_nomad_autojoin_token_password" = "zy9x87w65vut43strq21p"
        "cluster_uuid"                         = "1a23bc-4de5f6-g78h9i-j012kl3456mn7opq9"
    }
}

2. Verify the Nomad clients

After deployment, confirm your clients were successfully added to your cluster:

  1. Log in to the Nomad Web UI of your existing HashiCorp Nomad cluster.
  2. Select Clients from the left sidebar to view the newly added client nodes.
📘

Nomad clients aren't interacted with directly. See HashiCorp Nomad (cluster) for information on accessing the Nomad Web UI and managing your cluster.

Additional resources

For more information about the installed packages, see their official documentation.

📘

Note that we can't vouch for the accuracy or timeliness of externally hosted resources.


Did this page help you?