Windows Azure日本DCオープン記念の傘につられてみた

Windows Azure日本DCオープン記念!

MSDNサブスクリプション会員限定キャンペーン!

ってことで、Azureロゴ入り傘が貰えるらしいとクラウディアさんが言っていたので、

前から¥5,000/月分タダで使えるのに使わないのはもったいないなあと思っていたのもあり、

申し込んでみました。

 

で、キャンペーン応募条件はAzureを有効にするだけじゃなく、

実際にWEBサイトを作ってURLも一緒に添付しないといけないと。

 

手っ取り早く載せられそうかつ意味のあるコンテンツが思いつかなかったんですが、

WEBアプリのPaaSっぽいサービスでGitHubとソースコード連携できるようだったので、

前から気になってたsphinxでメモ書き的なものをHTML書き出しして、

どこからでも見れるちょっと整ったメモ書きみたいな感じにしてみました。

 

GitHub連携の設定はとても簡単でしたが、手順をまとめておきます。

 

①WEBサイトを作成

azure1

 

 

②カスタム作成を選択

azure2

 

③基本情報を入力し、「ソース管理から発行」にチェック

azure3

 

 

④GitHubを選択

azure5

 

 

⑤認証を行う

キャプチャ取り忘れ…でも、ただ出てくるボタンをクリックするだけです。

GitHubにログインしてないとたぶんログイン→認証

 

⑥リポジトリを選択

azure6

 

 

これだけ!

…で、GitHubにpushするとそのコンテンツが少し待つ反映されてます。

書いてpushするだけでちょっと整ったメモがどこでも見られて無料ならアリ…かな?

 

PHPに対応しているので、PHPなら速攻で動かし始められる予感です。

 

あとは、当然ながら.NETですね。

.NETも同じくらい簡単にデプロイできるとしたら、

.NETのPaaSはAzureで決まり!って気がします(僕は.NET使えませんがw)

まあ、同じMSなんで当然っちゃ当然ですがw

 

で、この用途だと実はサブスクリプション関係無く普通に無料使用枠内のようなので、

次は仮想マシンでも立てて何かに使おうと思いますが、何に使おう?w

 

 


Namanikuというgemを作ってみた

最近、ChefやServerspecからRubyに触れ始め、

Rubyを書くのが楽しくて仕方なくなってしまいました。

 

まだまだ初心者の域は脱していませんが、

ChefやServerspecのソースをかなり読んだので、

読解力はたいぶついてきた気がします。

 

そんなこんなで、「どうせならちゃんと自分の役に立つものを作ろう」ということで、

 

nodeのjsonファイルに書かれているrun_listから、

それに書かれているrecipeのattributesデフォルト値を付け足したりしたjsonファイルをエクポートする、

Namanikuというgemを作ってみました。

 

なんでそんなものが欲しかったかというと、

自分が作ったrecipeを他の人に使ってもらうとして、

「じゃあ、そのrecipeは何がattributeで指定できるの?」っていうのを、

一々まとめていくのは面倒極まりないと思ったからです。

 

名前の由来は、

chefでcookするための材料=焼く前の生肉って感じですw

響きが悪いし、若干後悔してますwww

 

そして、Ruby初心者のソースを公開してみるw

https://github.com/FumblePerson/namaniku

 

まともなものに仕上がるかも分からないので、

rubygemsで公開するかは未定。

 


serverspecでRDSのパラメータをテストするカスタムリソースを作ってみた

最近、「にわかChef使い」「オレ流運用」から脱却し、

「汎用Chef使い」「モダンな運用」を目指して、

構成の見直しや今までに書き溜めたcookbookのリファクタリングをしています。

 

…で、リファクタリングするならテスト書かなきゃダメでしょう!

(っていうか今まで書いてなかったんかいって話ですがw)

 

ということで、serverspecでテストも書き始めました。

 

そんな中に、

「RDSのパラメータの設定もChefでやっちゃえば設定周りは全部chef-solo実行するだけになるから楽じゃね?」

って勢いで作ったレシピがありまして、

これのテストをどうしたもんかなあ…と思ってGoogle先生に聞いても、

なんか良い方法を教えてくれなかったので、作ってみました。

 

serverspecの拡張方法はきっとGoogle先生が教えてくれるはず!と思ったら、

やっぱりありました。

 

これを参考に、作ったらこんな感じになりました↓

こんな感じで使えます↓

シンプルで良い感じです。

 

参考にさせていただいた記事にも書かれている(下の*1)ように、

「本来であれば、serverspec をフォークし、新しいリソースタイプを追加した上で pull リクエストを送るのが筋」なのかとも思いましたが、

以下の理由から辞めました。

  1. serverspecに本質的には関係の無いAWS SDKという依存関係を持ち込むのは良くない
  2. serverspecはSSHで対象のサーバに繋いでテストするツールな訳だが、
    RDSのパラメータ取得するのにSSH要らない
    (Chefで設定するのも一気に全部できて楽だからというだけで、同じ理由で冗長であるw)

まあ、↑じゃなくてもチキンなので多分できなかったでしょうがw

 

テストの実行は、

  1. git push
  2. Jenkinsさんが検知
  3. Jenkins先生がEC2にサーバ立ててChef実行
  4. Jenkins様がテストして結果を教えてくれる

っていう所謂自動テスト•CI的な所もチャレンジしていて、一応動いてるんですけど、

微妙に安定稼働していないのと試行錯誤してやったのでまとめきれていないので、

また今度書こうと思います。