ArchLinux で Consul 入れてみたら、いきなり動かなくて哀しい

CoreOS に etcd いれるのがどうもしっくりこないので、Consul をとりあえず試してみるなう。

とりあえず、 Consul いれましょう。

yaourt -S consul

 

Consulはもともと1バイナリ提供で、サービス定義は自分で書くものなのですが、ここはパッケージ導入の利点、一緒に入ってくれます。・・・ですが、 systemctl start consul ・・・すれども起動しない…(´・ω・`)

自動的に作られる /usr/lib/systemd/system/consul.service をチラ見してみると、-data-dir が無いから起動できないとか。さらに、自分の環境では private アドレスが複数あるので、ほかに通知するアドレスが自動では決まらない、と怒られました。

うん、デフォルトだと、いろいろ設定が足りない模様…。
/etc/default/consul を環境変数として読むことになってて、 consul 起動時に CONSUL_FLAGS を引数に与えるようになってるので、ここを利用して、必要な引数を与えておきます。

# Configure consul flags
CONSUL_FLAGS=-server -bootstrap-expect=1 -data-dir=/tmp/consul -advertise=192.168.99.100
  • -server … 値を保持するサーバにする(これをつけないと、ただ、ほかの consul サーバに問い合わせるだけになってしまう
  • -bootstrap-expect … 何人集まったらリーダ選出を始めるか。今回はとりあえず1でやってみる。
  • -data-dir … データをどこにおくか
  • -advertise … 他のノードに自分のIPを知らせるときに使う値。通常、Private IP が自動的に選ばれるけど、複数( Heyper-VのネットワークやDockerのネットワークで複数のIPを持ってる)場合は、明示的に指定して上げる

この状態で、systemctl start consul で起動したところ、無事起動した模様…あとは確認!

localdev /home/naou% consul info
agent:
check_monitors = 0
check_ttls = 0
checks = 0
services = 1
build:
prerelease =
revision =
version = 0.7.0
consul:
bootstrap = true
known_datacenters = 1
leader = true
leader_addr = 192.168.99.100:8300
server = true
…

よし。
とりあえず、動き始めた!

Spread the love
  •  
  •  
  •  

コメント

タイトルとURLをコピーしました