Consul-installation
領事-インストール
デモンストレーションのために、-devモードを使用して開発者モードでconsulエージェントを使用します。 ローカルマシンのセットアップのためだけに、単一のシステムコンソールセットアップを行います。 本番環境ではこの単一ノードのconsulクラスターを使用しないでください。 Hashicorpは、単一ノードの領事クラスターのケースシナリオで既に言及しているように、データ損失は避けられません。
Consulのインストール
Consulは、https://www.consul.io/downloadsl [www.consul.io/downloadsl]のダウンロードページからインストールできます。
マシンの[ダウンロード]セクションでバイナリパッケージを抽出できます。
$ cd Downloads
$ chmod +x consul
$ sudo mv consul/usr/bin/
ここで、*-devフラグ*を使用してconsulの使用を開始しましょう。
$ consul agent -dev -data-dir=/tmp/consul
出力は、次のスクリーンショットのようになります。
これで、次のコマンドを使用して領事メンバーを確認できます。
$ consul members
出力は、次のスクリーンショットのようになります。
あなたはこのノードに他のノードを結合したい場合-
$ consul join <Node 2> <Node 3>
または、ノード2および3で次のコマンドを実行できます-
$ consul join <Node 1>
コマンドラインを使用する
consulのコマンドラインはいくつかの異なるオプションで構成され、最も一般的に使用されるもののいくつかは次のとおりです-
- agent -Consulエージェントを実行します。
- configtest -構成ファイルを検証します。
- event -新しいイベントを開始します。
- exec -Consulノードでコマンドを実行します。
- force-leave -クラスターのメンバーを強制的にクラスターから離脱させます。
- info -オペレーターのデバッグ情報を提供します。
- join -Consulエージェントをクラスターに参加させる。
- keygen -新しい暗号化キーを生成します。
- keyring -ゴシップ層の暗号化キーを管理します。
- kv -キーと値のストアと対話します。
- leave -Consulクラスターを終了し、無理なくシャットダウンする。
- lock -ロックを保持するコマンドを実行します。
- maint -ノードまたはサービスのメンテナンスモードを制御します。
- members -Consulクラスターのメンバーを一覧表示します。
- monitor -Consulエージェントからログをストリーミングします。
- operator -Consulオペレーター向けのツールのクラスターを提供します。
- reload -エージェントをトリガーして構成ファイルをリロードします。
- rtt -ノード間のネットワーク往復時間を推定します。
- snapshot -Consulサーバーの状態のスナップショットを保存、復元、検査します。
- version -現在のConsulバージョンを出力します。
- watch -領事の変更に注意してください。
領事テンプレート
consul-templateは、Consulインスタンスを照会し、ファイルシステム上の指定されたテンプレートをいくつでも更新するデーモンを提供します。 consul-templateは、更新プロセスの完了時に任意で任意のコマンドを実行できます。 このオプションは、すべてを手動で行うことなく、consulクラスターをセットアップするのに役立ちます。
consulテンプレートは、 /tmp/<ファイル名> .conf.tmpfl に作成されます。 Hashicorp Configuration Language (HCL)に従ってテンプレートが作成される言語。
このhttps://releases.hashicorp.com/consul-template/[page]からconsul-templateをダウンロードできます。
次のコマンドを使用して試してください-
$ ./consul-template -h
出力は、次のスクリーンショットのようになります。
このバイナリをより目立つスペースに移動して、ユーザーが毎回利用できるようにする場合。 次のコマンドを入力できます-
$ chmod +x consul-template
$ sudo mv consul-template/usr/share/bin/
デモのために、 nginx のサンプル構成を使用して、サービスとして使用します。 [[1]]
$ 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 indexl;
}
location/stub_status {
stub_status;
}
{{range services}} {{$name := .Name}}
location/{{$name}} {
proxy_pass http://{{$name}};
}
{{end}}
}
今consulテンプレートバイナリファイルを使用して、次のコマンドを実行してください-
$ consul-template \
-template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"
前のコマンドでプロセスが開始されました。 後で別のターミナルを開き、次のコマンドを使用して、完全にレンダリングされたnginx.confファイルを表示できます。
$ cat/etc/nginx/conf.d/default.conf
出力は、次のスクリーンショットのようになります。