この日記のはてなブックマーク数 Subscribe with livedoor Reader

2015-07-21 Tue


junoser を使ってみる [junoser]


JANOG36のライトニングトークで、小島さんが発表されたものに

commit check offline
http://www.janog.gr.jp/meeting/janog36/program/lt-commit

というのがありました(今なら、ストリーミングアーカイブの閲覧可能 2015年7月21日現在)

ネットワーク設定の事前チェックというのは、なかなか難しく、実機投入時に初めてコマンドがないことに気づくとか、syntax が間違ってたとかあり得るので、なかなか泣かされます。

今回、小島さんが作られた junoser を使えば、JUNOS限定ですが、実機に依らず syntax check が可能となります。

junoser
https://github.com/codeout/junoser

インストール方法も、上記サイトに書いてあります。

ということで、さっそく手元のMacにインストール。

$ gem install junoser
Fetching: blankslate-3.1.3.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.


ですよねー

$ sudo gem install junoser


で、さくっとインストール完了。と……いま会社に実機がなく試せないことに気づく orz

ないものは仕方ないので、ちょこっと適当に設定ファイルをでっち上げて食わせてみる。

junoser のマニュアルによれば

$ junoser -c config.txt


で、文法チェックが

$ junoser -d config.txt


で、set形式に変換されるそうです。試しに

protocols {
    bgp {
        group ebgp-peers {
            type external;
            neighbor 192.0.2.2;
   }
}


みたいな設定ファイルを読み込ませてみると(rancid で取り込むと、上記のような形式になります)

$ junoser -d test-config.txt
set protocols bgp group ebgp-peers type external
set protocols bgp group ebgp-peers neighbor 192.0.2.2


のように、"show configuration | display set" としたように、set形式でコンフィグが表示されます。

なお、読み込ませる設定ファイルは、今回サンプルで使ったように、一部分でも良いので使い勝手もヨサゲです。

junoser は、netconf の xsd をベースにされているとのことですが、文法チェック的に、全く漏れがないとは言い切れないと思うので、手元の設定ファイルがある人は、どんどん Issue にフィード・バックするといいかと思います。

https://github.com/codeout/junoser/issues

こういうのが出揃えば、github enterprise やら gitlab やらで pull request による事前レビューからの実機へのコミット、とか進んでいけるんですかねぇ……みんなそのあたりどうやってるんだろう?




boot2docker 再び [Docker]


boot2docker インストール直後は、いろいろ環境変数がセットされたターミナルが開いているので不便はないわけですが、後日また触りたくなったら、それでは困ります。Docker Client が、Docker daemon に接続するためには、boot2docker-vm の起動以外にも、いろいろ設定しておく必要があります。まぁそれも boot2docker コマンドが手助けしてくれます。まずは、boot2docker start で起動です。

asteroid:~ kunitake$ boot2docker start
Waiting for VM and Docker daemon to start...
................ooooooooo
Started.
Writing /Users/kunitake/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/kunitake/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/kunitake/.boot2docker/certs/boot2docker-vm/key.pem

To connect the Docker client to the Docker daemon, please set:
    export DOCKER_CERT_PATH=/Users/kunitake/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1
    export DOCKER_HOST=tcp://192.168.59.103:2376

Or run: `eval "$(boot2docker shellinit)"`


ここで表示されるように、環境変数(DOCKER_CERT_PATH/DOCKER_TLS_VERIFY/DOCKER_HOST)をセットするか、boot2docker shellinit を呼び出すことで、docker を動作するための環境変数がセットされます。

asteroid:~ kunitake$ eval "$(boot2docker shellinit)"
Writing /Users/kunitake/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/kunitake/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/kunitake/.boot2docker/certs/boot2docker-vm/key.pem
asteroid:~ kunitake$ docker run busybox echo hello world
hello world


これで Mac で遊ぶ分には不便がなさそうですが、より汎用性の高い docker-machine も気になるところです。

docker-machine を使って boot2docker から脱却する
http://qiita.com/voluntas/items/7bcc9402b51a2ba99096

docker-machineを利用してVirtualBoxとSoftLayer上に簡単にDockerサーバを構築する
http://niccloud.niandc.ne.jp/?p=1195

上記の記事を見るとわかるように、boot2docker では、ローカルの仮想環境をベースに docker環境が整備されていましたが、docker-machine では、ローカルだけでなく、クラウド上のVMを簡単に操作することが可能になります。

今のところ、driver で指定できるクラウドは

  • Amazon EC2
  • Windows Azure
  • DigitalOcean
  • Exoscale
  • Google Computing Engine
  • OpenStack
  • RackSpace
  • SoftLayer
  • VMware vCloud Air


とからしいです。国内クラウド勢が使えるようには見えませんね。docker-machine 自体は Go言語で書かれているようです。githubにリポジトリがあるようですが、だれか pull request 投げたりしないのかなー


IPv4/IPv6 meter
検索キーワードは複数指定できます
ChangeLogを検索
Google
Web www.kunitake.org
思ったより安い……時もある、Amazon

カテゴリ