ポン酢ブログ(β)

The harder you work, the luckier you get. - Gary Player

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、遊べると思います。