github.com/smintz/nomad@v0.8.3/website/source/guides/cluster/manual.html.md (about) 1 --- 2 layout: "guides" 3 page_title: "Manually Bootstrapping a Nomad Cluster" 4 sidebar_current: "guides-cluster-manual" 5 description: |- 6 Learn how to manually bootstrap a Nomad cluster using the server join 7 command. This section also discusses Nomad federation across multiple 8 datacenters and regions. 9 --- 10 11 # Manual Bootstrapping 12 13 Manually bootstrapping a Nomad cluster does not rely on additional tooling, but 14 does require operator participation in the cluster formation process. When 15 bootstrapping, Nomad servers and clients must be started and informed with the 16 address of at least one Nomad server. 17 18 As you can tell, this creates a chicken-and-egg problem where one server must 19 first be fully bootstrapped and configured before the remaining servers and 20 clients can join the cluster. This requirement can add additional provisioning 21 time as well as ordered dependencies during provisioning. 22 23 First, we bootstrap a single Nomad server and capture its IP address. After we 24 have that nodes IP address, we place this address in the configuration. 25 26 For Nomad servers, this configuration may look something like this: 27 28 ```hcl 29 server { 30 enabled = true 31 bootstrap_expect = 3 32 33 # This is the IP address of the first server we provisioned 34 retry_join = ["<known-address>:4648"] 35 } 36 ``` 37 38 Alternatively, the address can be supplied after the servers have all been 39 started by running the [`server join` command](/docs/commands/server/join.html) 40 on the servers individually to cluster the servers. All servers can join just 41 one other server, and then rely on the gossip protocol to discover the rest. 42 43 ``` 44 $ nomad server join <known-address> 45 ``` 46 47 For Nomad clients, the configuration may look something like: 48 49 ```hcl 50 client { 51 enabled = true 52 servers = ["<known-address>:4647"] 53 } 54 ``` 55 56 The client node's server list can be updated at run time using the [`node 57 config` command](/docs/commands/node/config.html). 58 59 ``` 60 $ nomad node config -update-servers <IP>:4647 61 ``` 62 63 The port corresponds to the RPC port. If no port is specified with the IP 64 address, the default RPC port of `4647` is assumed. 65 66 As servers are added or removed from the cluster, this information is pushed to 67 the client. This means only one server must be specified because, after initial 68 contact, the full set of servers in the client's region are shared with the 69 client.