From b4bbbdf6c2cdb6ae96a49bb15cda1db49c56b2dc Mon Sep 17 00:00:00 2001 From: Kevin Fishner Date: Wed, 4 Mar 2015 16:12:14 -0800 Subject: [PATCH] explain how consul and atlas work together --- website/source/assets/images/atlas_web_ui.png | Bin 0 -> 76279 bytes .../source/docs/guides/atlas.html.markdown | 23 +++---- .../docs/guides/bootstrapping.html.markdown | 22 ++++-- .../intro/getting-started/join.html.markdown | 14 +++- .../intro/getting-started/ui.html.markdown | 65 ++++++++++-------- 5 files changed, 77 insertions(+), 47 deletions(-) create mode 100644 website/source/assets/images/atlas_web_ui.png diff --git a/website/source/assets/images/atlas_web_ui.png b/website/source/assets/images/atlas_web_ui.png new file mode 100644 index 0000000000000000000000000000000000000000..6853830d8df69103e9e3876cefe0c5d3aaf63d0d GIT binary patch literal 76279 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 DbCCea literal 0 HcmV?d00001 diff --git a/website/source/docs/guides/atlas.html.markdown b/website/source/docs/guides/atlas.html.markdown index dd920e448d..61f13eec45 100644 --- a/website/source/docs/guides/atlas.html.markdown +++ b/website/source/docs/guides/atlas.html.markdown @@ -8,22 +8,19 @@ description: |- # Atlas Integration -[Atlas](https://atlas.hashicorp.com) is a service provided by HashiCorp to deploy applications and manage infrastructure. -Starting with Consul 0.5, it is possible to integrate Consul with Atlas. This is done by registering a node as part -of an Atlas infrastructure (specified with the [`-atlas`](/docs/agent/options.html#_atlas) flag). Consul maintains a long-running connection to the -[SCADA](http://scada.hashicorp.com) service which allows Atlas to retrieve data and control nodes. +[Atlas](https://atlas.hashicorp.com?utm_source=oss&utm_medium=guide-atlas&utm_campaign=consul) is a service provided by HashiCorp to deploy applications and manage infrastructure. +Starting with Consul 0.5, it is possible to integrate Consul with Atlas. Atlas is able to display the state of the Consul cluster in its dashboard and set up alerts based on health checks. Additionally, nodes can use Atlas to auto-join a Consul cluster without hardcoding any configurations. -Data acquisition allows Atlas to display the state of the Consul cluster in its dashboard and set up alerts -based on health checks. Remote control enables Atlas to provide features like auto-joinining nodes. +Atlas is able to securely retrieve data from nodes as Consul maintains a long-running connection to the +[SCADA](http://scada.hashicorp.com) service. ## Enabling Atlas Integration To enable Atlas integration, you must specify the name of the Atlas infrastructure and the Atlas authentication -token. The Atlas infrastructure name can be set either with the [`-atlas`](/docs/agent/options.html#_atlas) -CLI flag or with the [`atlas_infrastructure`](/docs/agent/options.html#atlas_infrastructure) config option. -The Atlas token is set with the [`-atlas-token`](/docs/agent/options.html#_atlas_token) CLI flag, -[`-atlas-token`](/docs/agent/options.html#atlas_token) configuration option, or `ATLAS_TOKEN` -environment variable. +token in your Consul configuration. The Atlas infrastructure name can be set either with the [`-atlas` CLI flag](/docs/agent/options.html#_atlas) or with the [`atlas_infrastructure` configuration option](/docs/agent/options.html#atlas_infrastructure). The Atlas token is set with the [`-atlas-token` CLI flag](/docs/agent/options.html#_atlas_token), +[`-atlas-token` configuration option](/docs/agent/options.html#atlas_token), or `ATLAS_TOKEN` environment variable. + +To get an Atlas username and token, [create an account here](https://atlas.hashicorp.com/account/new?utm_source=oss&utm_medium=guide-atlasn&utm_campaign=consul) and replace the respective values in your Consul configuration with your credentials. To verify the integration, either run the agent with `debug`-level logging or use `consul monitor -log-level=debug` and look for a line like: @@ -38,8 +35,8 @@ Once integrated with Atlas, the auto-join feature can be used to have nodes auto peers in their datacenter. Server nodes will automatically join peer LAN nodes and other WAN nodes. Client nodes will only join other LAN nodes in their datacenter. -Auto-join is enabled with the [`-atlas-join`](/docs/agent/options.html#_atlas_join) CLI flag or the -[`atlas_join`](/docs/agent/options.html#atlas_join) configuration option. +Auto-join is enabled with the [`-atlas-join` CLI flag](/docs/agent/options.html#_atlas_join) or the +[`atlas_join` configuration option](/docs/agent/options.html#atlas_join). ## Securing Atlas diff --git a/website/source/docs/guides/bootstrapping.html.markdown b/website/source/docs/guides/bootstrapping.html.markdown index 009234d29a..23192896b8 100644 --- a/website/source/docs/guides/bootstrapping.html.markdown +++ b/website/source/docs/guides/bootstrapping.html.markdown @@ -14,7 +14,7 @@ The client nodes are mostly stateless and rely heavily on the server nodes. Before a Consul cluster can begin to service requests, a server node must be elected leader. Thus, the first nodes that are started are generally the server nodes. Bootstrapping is the process -of joining these server nodes into a cluster. +of joining these initial server nodes into a cluster. The recommended way to bootstrap is to use the [`-bootstrap-expect`](/docs/agent/options.html#_bootstrap_expect) configuration option. This option informs Consul of the expected number of @@ -38,17 +38,29 @@ providing the `-bootstrap-expect 3` flag. Once the nodes are started, you should This indicates that the nodes are expecting 2 peers but none are known yet. To provent a split-brain scenario, the servers will not elect themselves leader. -To trigger leader election, we must join these machines together. Since a join operation is symmetric, -it does not matter which node initiates it. +## Creating a cluster -From any node, you can do the following: +To trigger leader election, we must join these machines together and create a cluster. There are two options for joining; you can use [Atlas by HashiCorp](https://atlas.hashicorp.com?utm_source=oss&utm_medium=guide-bootstrapping&utm_campaign=consul) to auto-join or you can access the machine and manually run the join. + +For auto-join using Atlas, you must set three configurations — the name of your Atlas infrastructure with the [`-atlas` flag](/docs/agent/options.html#_atlas), your Atlas token with the [`-atlas-token` CLI flag](/docs/agent/options.html#_atlas_token), and the [`-atlas-join` flag](/docs/agent/options.html#_atlas_join). Below is an example configuration: + +```text +$ consul agent -server -data-dir="/tmp/consul" -bootstrap-expect 3 \ + -atlas=ATLAS_USERNAME/infrastructure \ + -atlas-join \ + -atlas-token="YOUR_ATLAS_TOKEN" +``` + +To get an Atlas username and token, [create an account here](https://atlas.hashicorp.com/account/new?utm_source=oss&utm_medium=guide-bootstrapping&utm_campaign=consul) and replace the respective values in your Consul configuration with your credentials. + +To manually create a cluster, access one of the machines and run the following: ```text $ consul join Successfully joined cluster by contacting 3 nodes. ``` -Once the join is successful, one of the nodes will output something like: +Since a join operation is symmetric, it does not matter which node initiates it. Once the join is successful, one of the nodes will output something like: ```text [INFO] consul: adding server foo (Addr: 127.0.0.2:8300) (DC: dc1) diff --git a/website/source/intro/getting-started/join.html.markdown b/website/source/intro/getting-started/join.html.markdown index eed68b475e..388ab65f39 100644 --- a/website/source/intro/getting-started/join.html.markdown +++ b/website/source/intro/getting-started/join.html.markdown @@ -82,8 +82,18 @@ agent-two 172.20.20.11:8301 alive role=node,dc=dc1,vsn=2,vsn_min=1,vsn_max learn about one existing member. After joining the cluster, the agents gossip with each other to propagate full membership information. -In addition to using `consul join` you can use the `-join` flag on -`consul agent` to join a cluster as part of starting up the agent. +## Auto-joining a Cluster on Start +Ideally whenever a new node is brought up in your datacenter, it should automatically join the Consul cluster without human intervention. To accomplish this, you can use [Atlas by HashiCorp](https://atlas.hashicorp.com?utm_source=oss&utm_medium=getting-started-join&utm_campaign=consul) and the [`-atlas-join` flag](/docs/agent/options.html#_atlas_join). An example configuration is shown below: + +```text +$ consul agent -atlas-join \ + -atlas=ATLAS_USERNAME/infrastructure \ + -atlas-token="YOUR_ATLAS_TOKEN" +``` +To get an Atlas username and token, [create an account here](https://atlas.hashicorp.com/account/new?utm_source=oss&utm_medium=getting-started-join&utm_campaign=consul) and replace the respective values in your Consul configuration with your credentials. Now whenever a new node comes up with a Consul agent, it automatically joins your Consul cluster without any hardcoded configurations. + +Alternatively, you can use the [`-join` flag](http://www.consul.io/docs/agent/options.html#_join) +with a hardcoded address of a known Consul agent to join a cluster. ## Querying Nodes diff --git a/website/source/intro/getting-started/ui.html.markdown b/website/source/intro/getting-started/ui.html.markdown index 2c12ed9738..3319aa7464 100644 --- a/website/source/intro/getting-started/ui.html.markdown +++ b/website/source/intro/getting-started/ui.html.markdown @@ -8,19 +8,47 @@ description: |- # Consul Web UI -Consul comes with support for a -[beautiful, functional web UI](http://demo.consul.io) out of the box. -This UI can be used for viewing all services and nodes, viewing all +Consul comes with support for a beautiful, functional web UI. +The UI can be used for viewing all services and nodes, viewing all health checks and their current status, and for reading and setting key/value data. The UI automatically supports multi-datacenter. -For ease of deployment, the UI is -[distributed](/downloads.html) -as static HTML and JavaScript. -You don't need a separate web server to run the web UI. The Consul -agent itself can be configured to serve the UI. +There are two options for running a web UI for Consul. The first option is self-hosting and using the [open-source UI](/downloads.html), the second option is using [Atlas by HashiCorp](https://atlas.hashicorp.com) to host the dashboard for you. -## Screenshot and Demo +## Atlas-hosted Dashboard +To setup the Atlas UI for Consul, you must add two fields to your configuration — the name of your Atlas infrastructure and your Atlas token. Below is an example configuration: + +```text +$ consul agent -atlas=ATLAS_USERNAME/demo -atlas-token="ATLAS_TOKEN" +``` + +To get an Atlas username and token, [create an account here](https://atlas.hashicorp.com/account/new?utm_source=oss&utm_medium=getting-started-ui&utm_campaign=packer) and replace the respective values in your Consul configuration with your credentials. + +You can view a live demo of the Atlas UI [here](https://atlas.hashicorp.com/hashicorp/infrastructures/consul-demo). + +A screenshot of one page of the demo is shown below so you can get an +idea of what the web UI is like. + +
+![Atlas Web UI](atlas_web_ui.png) +
+ +## Self-hosted Dashboard +To set up the self-hosted UI, +[download the web UI package](/downloads.html) +and unzip it to a directory somewhere on the server where the Consul agent +is also being run. Then append the `-ui-dir` to the `consul agent` +command pointing to the directory where you unzipped the UI (the +directory with the `index.html` file): + +```text +$ consul agent -ui-dir /path/to/ui +... +``` + +The UI is available at the `/ui` path on the same port as the HTTP API. +By default this is `http://localhost:8500/ui`. +-datacenter. You can view a live demo of the Consul Web UI [here](http://demo.consul.io). @@ -36,21 +64,4 @@ idea of what the web UI is like. Click the screenshot for the full size.
![Consul Web UI](consul_web_ui.png) -
- -## Set Up - -To set up the web UI, -[download the web UI package](/downloads.html) -and unzip it to a directory somewhere on the server where the Consul agent -is also being run. Then, just append the `-ui-dir` to the `consul agent` -command pointing to the directory where you unzipped the UI (the -directory with the `index.html` file): - -```text -$ consul agent -ui-dir /path/to/ui -... -``` - -The UI is available at the `/ui` path on the same port as the HTTP API. -By default this is `http://localhost:8500/ui`. + \ No newline at end of file