Ruby + Gehirn DNS API で幸せになってみる
2012/11/12 からゲヒルンより提供が始まった「Gehirn Web Services」。
「Gehirn RS2」や「Gehirn KVS」(未提供) などの魅力的なサービスが並ぶ中、個人的には「Gehirn DNS」にトキメイていました。
Gehirn DNS は、普通の DNS サービスなんですが、こんなところが違うよ、という。
- 国内のデータセンターが 3 サーバ動いてる!
- BIND のゾーンファイルが移行(もしくはエクスポート)できる!
- API が使える!
という感じです。ちなみに、無料で 2 ドメインまでの管理は無料。その後も月 315 円で、無制限管理できるとのことで、割と魅力的。
僕は 1 ドメインなので余裕で無料ですが、それでなくても良いのかなあと思いました。
と、 Gehirn DNS の紹介はここまでにして、先程も言った「API」について触れたいと思います。
API の意味は説明しなくてもいいと思うので省略しますが、要するに自分のアプリケーションからレコードを弄れる、これは面白いですね。
ということで、 Ruby から Gehirn DNS をイジイジしてみます。
まずは、 REST をイジイジするための gem を導入しておきます。
gem install rest-client
あとは rest-client を require して、 API を叩くだけです。例えば、
puts RestClient.get "https://Token:Secret@cp.gehirn.jp/api/dns/resource/example.com
※ example.com はドメイン名
コレでとりあえずドメインのレコードが出てくるはずです。JSON 形式がデフォルトなので ドメインの後に .xml つければ XML 形式で出力されるので、パースするときなんかに便利です。多分。
レコードを変更したければ、
RestClient.put "https://Token:Secret@cp.gehirn.jp/api/dns/resource/123/456”, Resource: {IPAddress: "IPアドレス"}
※ 123 → ドメインの ID , 456 → レコードの ID
これでレコードが変更されます。
あとは API リファレンスを読むと幸せになれると思います。
僕が個人的に便利かもと思ったのは、 DDNS としての利用。
API を叩けば、 DDNS として利用できるのではないかと思いました。
こちらのコードは github に上げておきます。 ( atpons/gddns )
使い方は clone して設定して、
gddns
と叩くだけ。 cron などと併用すれば良いと思います。
何はともあれ、 Gehirn DNS、遊べると思います。