github.com/diptanu/nomad@v0.5.7-0.20170516172507-d72e86cbe3d9/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 individual to cluster the servers. All servers can join just one
    41  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  At this time, there is no equivalent of the <tt>server-join</tt> command for
    57  Nomad clients.
    58  
    59  The port corresponds to the RPC port. If no port is specified with the IP
    60  address, the default RCP port of `4647` is assumed.
    61  
    62  As servers are added or removed from the cluster, this information is pushed to
    63  the client. This means only one server must be specified because, after initial
    64  contact, the full set of servers in the client's region are shared with the
    65  client.