Serf/Consulで管理を自動化! ~実践的な手法を紹介~

第5回 Consulインターフェースとサービス検出を最小構成で確認

この記事を読むのに必要な時間:およそ 4 分

前回はConsulの登場背景や使いどころについて扱いました。今回はConsulを実際に使うために,簡単なクライアント・サーバ構成を作成します。それから基本的なサービスの登録方法や,その結果をConsulのインターフェースを通して知る方法を見ていきます。

動作確認のための最小構成

Consulの基本動作を確認するための最小環境は,1台のサーバ上でConsulエージェントをサーバモードとして動かします図1)⁠Consulサーバは,エージェントから取得した様々なデータを保管し,結果を参照するためのインターフェースを提供します。Consulエージェントを起動するときに,サーバモードを明示するオプションを付けて起動します。

図1 Consulサーバの最小構成

図1 Consulサーバの最小構成

なお,Consulサーバが1台なのは,あくまで簡単な動作確認のためです。実際の環境においては,データ保全のために3または5台のConsulサーバでクラスタを形成することが強く推奨されています。

Consulのセットアップ

Consulを使い始めるには,まずアーキテクチャ毎のバイナリファイルを取得します。ダウンロード用ページから,自分の環境向けのダウンロードします。提供されているバイナリは,Linux,Mac OS X,Windows向けです。

以下はLinux(x86_64)の環境でのセットアップ例です。アーカイブを取得・展開した後,任意のパスにファイルを設置します。

$ wget -O 0.5.0_linux_amd64.zip https://dl.bintray.com/mitchellh/consul/0.5.0_linux_amd64.zip
$ unzip 0.5.0_linux_amd64.zip
$ sudo cp consul /usr/bin/consul

以上でセットアップ作業は完了です。Consulはconsulという名前のバイナリのみで動作するため,その他ライブラリ等のセットアップは不要です。あとはコマンドライン上からバージョン番号を確認するには,consul versionと実行します。

$ consul version
Consul v0.5.0
Consul Protocol: 2 (Understands back to: 1)

ここで「Consul Protocol」に表示されている,Consulプロトコルのバージョン番号に注意が必要です。Consulは後方互換性が用意されているため,古いバージョンのConsulクライアントと通信することができます。しかし,Consulバージョン0.5のサーバは。バージョン0.4と同じプロトコル番号ですが,クラスタを構成できません。そのため,今後もConsulのバージョンが上がるときには,仕様が変わっていないかどうかの確認をお勧めします。

Web UIのセットアップ

Consulは,ブラウザからConsulのノード情報やサービスの状況を参照できるインターフェース(Web UI)があります。これは,必ずしも使う必要がないため,Consulの実行バイナリとは別に配布されています。Web UIをセットアップするには,アーカイブを展開した後,任意の場所に移動します。

$ wget -O 0.5.0_web_ui.zip https://dl.bintray.com/mitchellh/consul/0.5.0_web_ui.zip
$ unzip 0.5.0_web_ui.zip
$ sudo mv dist /opt/consul/dist

移動したディレクトリを控えておき,Consul起動時にWeb UIのオプションを指定して起動します。

Consulサーバの起動

Consulエージェントをサーバとして起動するには,consul agentコマンドを使う時,複数のオプション指定を行います。

-server

エージェントをサーバ状態にします(必須)⁠

-bootstrap-expect=1

Consulサーバを1台で構成することを明示します(必須)⁠

-data-dir=/tmp/consul

データ保管場所を指定します(必須)⁠

-bind=192.168.39.3

複数のネットワークインターフェースがある環境では,どのIPアドレスを利用するか選べます。

これらのオプションを使って起動すると,次のように画面に表示されます。

# consul agent -server -bootstrap-expect=1 -data-dir=/tmp/consul -bind=192.168.39.3
==> WARNING: BootstrapExpect Mode is specified as 1; this is the same as Bootstrap mode.
==> WARNING: Bootstrap mode enabled! Do not enable unless necessary
==> Starting Consul agent...
==> Starting Consul agent RPC...
==> Consul agent running!
         Node name: 'sion.pocketstudio.net'
        Datacenter: 'dc1'
            Server: true (bootstrap: true)
       Client Addr: 127.0.0.1 (HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400)
      Cluster Addr: 192.168.39.3 (LAN: 8301, WAN: 8302)
    Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false
             Atlas: <disabled>

==> Log data will now stream in as it occurs:

Consulエージェントを終了するには,Ctrl+Cキーで中断するか,killコマンドで停止できます。

著者プロフィール

前佛雅人(ぜんぶつまさひと)

クリエーションライン株式会社 Technology Evangelist

ホスティングサービスで運用保守サポートに携わった後,現職へ。サポート業務や新技術検証・開発業務を行う。趣味で監視や自動化に関するOSS検証や翻訳を行うのが好き。辛口の日本酒が大好き。

Twitter:@zembutsu

コメント

コメントの記入