60
consul-templateデーモンはコマンドラインを介して実行され、構成ファイルが変更され
てテンプレート化されるたびにNGINXをリロードするために使用できます:
# consul-template -consul consul.example.internal -template
template:/etc/nginx/conf.d/upstream.conf:"nginx -s reload"
このコマンドは consul-templateデーモンにconsul.example.internalのConsulクラス
タ に 接 続 し 、現 在 の 作 業 デ ィ レ クト リ に あ る template という名前のファイルを使用して
ファイルをテンプレート化し、生 成されたコンテンツを /etc/nginx/conf.d/upstream.conf
に出力し、その後、テンプレート化されたファイルに変更が生じるたびにNGINXをリロ
ードするよう指 示します。-templateフ ラ グ は 、テ ン プ レ ー ト フ ァ イ ル の 文 字 列 、出 力 ロ
ケーション、テンプレート化プロセスの実行後に実行するコマンドを受け取ります。
これらの3つの変数は、コロンで区切られています。実行中のコマンドにスペースが含
ま れ て い る 場 合 は 、必 ず 二 重 引 用 符 で 囲 ん で く だ さ い 。-consulフ ラ グ は 、ど の Consul
クラスタに接 続するか をデーモンに指 示します。
解説
Consulは、強力なサービス検出ツールおよび構成ストアです。Consulは 、ノ ー ド と キ ー 値
のペアに関する情報をディレクトリのような構造に格納し、Restful APIインタラクション
を可能 にします。Consulは、各クライアントにDNSイ ン タ ーフ ェ ー ス も 提 供 し 、ク ラ ス タ
に接続されているノードのドメイン名をルックアップできるようにします。Consulクラス
タを利用する別の プロジェクトはconsul-templateデ ー モ ン で す 。こ の ツ ー ル は 、Consul
ノード、サービス、またはキーバリューのペアの変更に応じてファイルをテンプレート化
し ま す 。こ の 機 能 の た め NGINXの自動化を考慮する場合、Consulはパワフルな選択 肢
となっています。consul-templateで テンプレートへの変 更が 行 われた 後 にコマンドを実
行するようにデーモンに指示することもできます。これにより、NGINX構 成をリロード
し、NGINX構成を環境とともに有効にすることができます。Consulとconsul-template
を使用することで、NGINX構 成 は 環 境 と 同 じ く 動 的 に な る こ と が で き ま す 。イ ン フ ラ ス ト
ラクチャ、構成、およびアプリケーションの情報は一元的に保存され、consul-template
は必要に応じてイベントベースの方法でサブスクライブおよび再テンプレート化できま
すこのテクノロジーにより、NGINXはサーバー、サービス、アプリケーションバージョン
などの追加と削除に応じて動的に再構成できます。
関連項目
NGINX Plus Consul インテグレーション
NGINX Consul インテグレーション
Consul ホームページ
Consul テンプレートの紹介
Consul テンプレート GitHub
| 第5章:プログラマビリティと自動化