ども、 cloudpack の かっぱ (@inokara) です。
妄想
Raspberry Pi 複数で consul クラスタ組みたい!
現実
ビルド
ドキュメントによると…
If you wish to work on Consul itself, you’ll first need Go installed (version 1.4+ is required). Make sure you have Go properly installed, including setting up your GOPATH.
どうやら Go 1.4 以上であればビルドが出来るようです。
あ、手元に…
Go 1.4 がインストールされた Raspberry PI B+ があるじゃないか。
pi@raspberrypi ~ $ go version go version go1.4 linux/arm pi@raspberrypi ~ $ echo $GOROOT $HOME/go1.4 pi@raspberrypi ~ $ echo $GOPATH $HOME/go-dev pi@raspberrypi ~ $ which go $HOME/go1.4/bin/go pi@raspberrypi ~ $
おお、これはやってみるしかなさそうですな。
早速ビルド
準備は整った(整っていた)ので早速ビルドしてみます。。
cd $HOME/go-dev/src/github.com git clone https://github.com/hashicorp/consul.git cd consul make
以下のように出力されました。
さて、何分かかるのやら…とお茶を飲みながら待っていると…
やったー。 だいたい 20 分程度でした。
起動してみる
とりあえず一台の Raspberry Pi で Consul を起動してみました。 cd $GOPATH/src/github.com/consul/bin/ ./consul agent -server -data-dir=/tmp/ -join 127.0.0.1 -bootstrap &
以下のように出力されます。( -bootstrap
オプションは非推奨ですのでご注意下さい。)
おお、起動しました。
更に consul members
を叩くと…
$ ./consul members 2015/03/19 23:56:09 [INFO] agent.rpc: Accepted client: 127.0.0.1:48943 Node Address Status Type Build Protocol raspberrypi xxx.xxx.xxx.xxx:8301 alive server 0.5.0 2
アローンですがメンバーも確認出来ました。 ついでに Leader node の確認も。
$ http GET localhost:8500/v1/status/leader HTTP/1.1 200 OK Content-Type: application/json Date: Thu, 19 Mar 2015 14:58:49 GMT Content-Length: 20 " xxx.xxx.xxx.xxx:8300"
Leader がちゃんと頑張っています。
それがどうした…と言わないでー
Go が動けば Consul は動くだろうと思ったら Raspberry Pi(ARM アーキテクチャの CPU でも動いた)のは嬉しかった。複数の Raspberry Pi をかき集めてクラスタ組んでなんか面白いこと出来そうな妄想と共におやすみなさい。
追伸:Raspberry Pi 2 が欲しい。
元記事はこちらです。
「Raspberry Pi で consul を動かす妄想と現実」