PHPMatsuri2013に参加してきました!
奥芝商店というスープカレー屋で念願の本場スープカレーを食べました!
が、とてもボリューミーで死にかけた小山です。創成寺(ソーセージ)うまい!
今回はPHPMatsuri2013のハッカソンで作成した“devil's pie”について、技術的な点と今後について紹介したいと思います。
“devil's pie”とは?
詳しくはこちらPHPMatsuri2013″大”LT大会での発表スライドとデモムービーをご覧ください。
話はそれますが、PHPMatsuriはこの”大”LT大会が祭りの醍醐味と言っても過言ではないと思っています。
徹夜して開発した成果の発表を待ちながら、他の人のいろいろな成果発表を聞いて盛り上がる。そしてそれぞれがそれぞれに投票して参加できる。
この発表の瞬間のために参加しているんだと思います。
“devil's pie”の中の技術
話を戻します。
スライドを見てもらえれば分かりますが、”devil's pie”は
Webアプリケーション設置に必要な、「サーバの構築」と「アプリケーションのデプロイ」を、「Ansible」「serverspec」「Capistrano」を使って自動化するためのWebインターフェースになっています。
“devil's pie”の実行の流れ
“devil's pie”の動きとしては、まずホストネームと「サーバの魂」であるrootパスワードをもらって、Ansibleを使ってdevilユーザを対象サーバに追加します。
その後、そのdevilユーザを使って
- 1. serverspecでテストを実行→失敗を確認
- 2. Ansibleでサーバ構築
- 3. Capistranoでアプリケーションデプロイ
- 4. serverspecでテストを実行→成功を確認
という流れでWebアプリケーションを設置しています。
Webアプリケーションは現在はCandycane、baserCMS、CakePHPに「デモ的に」対応しています。
“devil's pie”の今後
“devil's pie”はPHPMatsuri2013での発表のために作られましたが、今後の展開も意外にまじめに考えています。
“devil's pie”の使い勝手は今のままをできるだけ維持したいのですが、「設定側(管理側)はもっといろいろできるようにしたいなあ」と思っています(今はまだ結構ハードコーディングしてる)。
例えば、
- 任意のアプリケーションに対応できるようにAnsibleのplaybookやserverspecのspec、Capistranoのdeploy.rbを設定できる
- 「サーバの構築だけ」とか「アプリケーションのデプロイだけ」「テストだけ」でも使えるように
- 「最初のサーバ構築だけボタン1つでできる」だけでも随分楽になる
- “devil”ユーザではなくてもいいように(さすがにdevilは本番で使えない)
- Web APIを通じて継続的に実行とか
- playbookやspec、deploy.rbのアーカイブダウンロード(“devil's pie”を卒業した人へ)
などなど。
“devil's pie”の配布方法について
あと、”devil's pie”の生きる道は「社内ツール」しかないわけですが(もしWebサービスとして公開したら。。。怖)、その”devil's pie”自体の構築がかなり面倒です。
ソースを公開してすぐに、「ノードキュメント」で動かしはじめた北の猛者がいたらしいと聞きましたが、そういう人は稀です。もう一度言います。そういう人は稀です。あと、ちょっとおかしい。
“devil's pie”から”devil's pie”をデプロイできるようにはするつもりですが、「じゃあ最初の”devil's pie”はどこから??」という話になるわけで。
これについては、いずれVagrantのBoxの配布などで対応できればなと思っています(つまり、「Packer使ってみたい」)。
“devil's pie”のVagrant Boxで作った仮想サーバから任意のサーバへ”devil's pie”をデプロイすればいい感じに社内に設置できるんじゃないかと(混乱をまねく文章になっていますが)。
と、ここまで書いて、ふとAnsibleのサイトをみたら”AnsibleWorks AWX”というAnsibleのWebアプリケーションが提供されているようですね。
PHPMatsuri2013の感想
スタッフとしても参加したのですが、主に北海道の方々の素晴らしい運営により、とても有意義に過ごせました。
“devil's pie”も4位をいただくことができました!共感してくださった方ありがとうございます!みんな魂を売りたいんですね!
賞品としてOn-Lapという外部ディスプレイをいただきました!VJで使います!
ちなみに個人的に印象に残った発表は、いろいろありますが3つほど選んでみました。
- Phagrant
- さくらうどAPIを使ったなにか。
- Sacloudさわってみたお
Matsuriのその日の話題から作る人は、すごいな、と。で、ここまで作るか、と。
どれも今後も開発が継続されそうなので楽しみです。すごく使いそう。
というわけで、PHPMatsuri2013堪能しました!