領事-インストール

デモンストレーションの目的で、-devモードを使用する開発者モードでconsulエージェントを使用します。ローカルマシンのセットアップのためだけに、単一のシステム領事のセットアップを行います。Please do not use this single node consul cluster in your production。Hashicorpは、単一ノードの領事クラスターのケースシナリオですでに言及しているように、the data loss is inevitable

領事のインストール

Consulは、www.consul.io /downloads.htmlのダウンロードページからインストールできます。

マシンのダウンロードセクションでバイナリパッケージを抽出できます。

$ cd Downloads
$ chmod +x consul
$ sudo mv consul /usr/bin/

それでは、領事館を使って使い始めましょう。 -dev flag

$ consul agent -dev -data-dir=/tmp/consul

出力は、次のスクリーンショットに示すようになります。

これで、次のコマンドを使用して領事メンバーを確認できます。

$ consul members

出力は、次のスクリーンショットに示すようになります。

他のノードをこのノードに参加させたい場合-

$ consul join <Node 2> <Node 3>

または、ノード2と3で次のコマンドを実行することもできます。

$ consul join <Node 1>

コマンドラインの使用

領事のコマンドラインはいくつかの異なるオプションで構成されており、最も一般的に使用されるもののいくつかは次のとおりです。

  • agent −領事エージェントを実行します。

  • configtest −構成ファイルを検証します。

  • event −新しいイベントを開始します。

  • exec −領事ノードでコマンドを実行します。

  • force-leave −クラスターのメンバーにクラスターからの離脱を強制します。

  • info −オペレーターのデバッグ情報を提供します。

  • join −領事エージェントをクラスターに参加させる。

  • keygen −新しい暗号化キーを生成します。

  • keyring −ゴシップレイヤー暗号化キーを管理します。

  • kv −Key-Valueストアと対話するため。

  • leave −領事クラスターを離れ、強制的にシャットダウンします。

  • lock −ロックを押し続けるコマンドを実行します。

  • maint −ノードまたはサービスのメンテナンスモードを制御します。

  • members −領事クラスターのメンバーを一覧表示します。

  • monitor −領事エージェントからログをストリーミングします。

  • operator −領事オペレーター向けのツールのクラスターを提供します。

  • reload −エージェントが設定ファイルをリロードするようにトリガーします。

  • rtt −ノード間のネットワークラウンドトリップ時間を推定します。

  • snapshot − Consulサーバーの状態のスナップショットを保存、復元、および検査します。

  • version −現在の領事のバージョンを印刷します。

  • watch −執政官の変更に注意する。

領事テンプレート

consul-templateは、Consulインスタンスにクエリを実行し、ファイルシステム上の指定されたテンプレートをいくつでも更新するデーモンを提供します。consul-templateは、更新プロセスが完了したときに、オプションで任意のコマンドを実行できます。このオプションは、すべてを手動で行うことなく、領事クラスターをセットアップするのに役立ちます。

領事テンプレートはで形成されます /tmp/<name-of-file>.conf.tmpfl。テンプレートが記述されている言語Hashicorp Configuration Language (HCL)。

このページからconsul-templateをダウンロードできます。

次のコマンドを使用して試してみてください-

$ ./consul-template -h

出力は、次のスクリーンショットに示すようになります。

このバイナリをより目立つスペースに移動して、ユーザーがいつでも利用できるようにする場合。次のコマンドを入力できます-

$ chmod +x consul-template
$ sudo mv consul-template /usr/share/bin/

デモの目的で、次のサンプル構成を使用します。 nginx私たちのサービスとして使用されます。あなたはでより多くのデモを試すことができますhttps://github.com/hashicorp/consul-template/tree/master/examples または、独自のテンプレートを書き留めてください。

$ vim /tmp/nginx.conf.ctmpl

出力は、次のスクリーンショットに示すようになります。

設定ファイルは次のようになります-

{{range services}} {{$name := .Name}} {{$service := service .Name}}

upstream {{$name}} {
   zone upstream-{{$name}} 64k;
   {{range $service}}server {{.Address}}:{{.Port}} max_fails = 3 fail_timeout = 60
   weight = 1;
   {{else}}server 127.0.0.1:65535; # force a 502{{end}}
} {{end}}

server {
   listen 80 default_server;
   location / {
      root /usr/share/nginx/html/;
      index index.html;
   }
   location /stub_status {
      stub_status;
   }
   {{range services}} {{$name := .Name}}
   location /{{$name}} {
      proxy_pass http://{{$name}};
   }
   {{end}}
}

領事テンプレートのバイナリファイルを使用して、次のコマンドを実行してください-

$ consul-template \
 -template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"

前のコマンドでプロセスが開始されました。後で別のターミナルを開いて、次のコマンドを使用して完全にレンダリングされているnginx.confファイルを表示できます。

$ cat /etc/nginx/conf.d/default.conf

出力は、次のスクリーンショットに示すようになります。