ConoHaのDNS APIをCLIから叩くやつを作った

2016-12-24 技術

作りました

ConoHa Advent Calendar 2016 24日目の記事です。

ConoHaのDNS

ConoHaには無料で使えるDNS機能が用意されています。 なぜか機能一覧には乗ってません。見落としてるだけだろうか。GeoDNSは書いてある。 料金ページには「ドメインのレコードを登録して使うことができるDNS機能を無料提供。」って書いてありますね。

使ってみる

登録がまだの人は急いで登録しましょう。 ココから登録するとクーポンもらえますよ。 電話認証を選択するのを忘れずに。

とりあえず、ConoHaにログインしたらまず右上のメールアドレスをクリックしてメニューを開き、「アカウント設定 > 表示設定 > モード設定」で”このはモード”を選択します。

あぁ^〜

左のメニューから「DNS」を開けば、こんなカンジでDNSが使えます。

もちろん、ドメインのレジストラの方でネームサーバをConoHaのns-a*.conoha.ioにしないとダメですよ。

それだけ。

DNS API

コレだけだとまぁわざわざConoHaのDNSを使わなくてもレジストラ標準のDNSでいいじゃん!ってなるんですが、 ConoHaのDNSの強みはAPIから設定を操作できる点にあります。

CLIクライアントのpython-designateclientがあるのでそれを使いましょう。

……だと終わってしまうので、自分が使いやすいように作ったconoha-dnsを紹介します。

conoha-dns

nodejsからDNS APIを叩くために書いたコードの副産物的に作りました。

ObjectStorageのCLIクライアントconoha-ojsをリスペクトして - 認証情報をファイルに保存 - シングルバイナリで動作 するようになってます。

AdC用に急ぎで作ったのでだいぶ作りが荒いです。 問題が起きても責任は取れませんが、よかったら使ってください。 conoha-dns

動作風景

こういうかんじです。 詳しい説明はconoha-dnsを見てね。

$ conoha-dns auth
Tenant ID: mytenantid
API User: myusername
Password:
OK

$ conoha-dns add wataraijun.com
id                                    name             ttl
------------------------------------  ---------------  ----
c8f8677e-742c-4ed6-9a53-de80d76571aa  wataraijun.com.  3600

$ conoha-dns add www.wataraijun.com -t CNAME -d www.narusejun.com
id                                    name                 type   ttl   data                priority
------------------------------------  -------------------  -----  ----  ------------------  --------
bb02410c-2761-4080-9b70-da7445fc714c  www.wataraijun.com.  CNAME  3600  www.narusejun.com.  null

感想

  • 見通しを立ててコード書くの難しい
    • あとからいろいろ変えたらわけわからん設計になった
  • 同じコマンドで別のAPIを叩いてるのが気持ち悪いかもしれない
    • python-swiftclientやconoha-ojsみたいに、list単体だとコンテナを一覧表示、list hogeだとコンテナの中身を一覧表示……みたいなイメージだったんだけど
  • Goはシングルバイナリで配布できる!とか持て囃されてるけどnodejsでもできるから!
    • nexeというものを使います
    • 一部動かないコードがあったり、nodeをまるごとコンパイルするのでクソ時間かかったりしますが……
    • nodejs最高
  • ConoHaちゃんかわいい

以上

このはちゃんが可愛すぎることを差し置いてもConoHaはめっちゃ良いサービスです。 ConoHa最高。

サークルのブログにもConoHa関係の記事があります。 ConoHaでArchLinuxを動かすまで

宣伝

今年の冬コミ(C91)に技術系の合同誌を出します。

トピックは - SQLインジェクション (@N4RU5E) - シェーダー(GLSL) (@sobaya007) - 巡回セールスマン問題 (@_n_ari) - LLVM (@long_long_float) - ディープラーニング (@to_huothu)

の5つで200ページとなっております。 角で殴られたら致命傷なカンジな厚さになってます。 1000円です。

木曜日(1日目) 西地区“み”ブロック-18b 「揚羽高校情報処理部」

でお待ちしています。よろしくお願いします!

目次