読者です 読者をやめる 読者になる 読者になる

Vagrant Shareの運用を始めてみた

Vagrant 開発

Vagrant1.5から導入されたVagrant Share、皆さん使ってますか?

Vagrant Shareって何よ?

Vagrant Shareってなんのこっちゃっていう方はこちらのエントリがとても参考になるのでご覧ください。

Vagrant CloudのVagrant Shareを試してみたら凄すぎて鼻血出た - 憂鬱な世界にネコパンチ!

一言でいうと、「ローカル環境でVagrantを使って稼働させているゲストOS上のアプリケーションをグローバルに公開できる」という仕組みです。この仕組みが開発に与えるインパクトを整理しておきましょう。

利用することによるメリット

ゲストOS上のアプリケーションを即座に実機確認することができる

Vagrant Cloudに登録している状態でvagrant loginしてvagrant shareすれば数秒で、vagrantcloud.comのサブドメインにて公開されます。これまでも同一ネットワーク上のWIFIに接続すれば確認することは可能なんですけど、外に出ることで3Gレベルの通信速度で確認ができるというのが大きいです。あと、ガラケーサイトの実機確認とかも圧倒的に楽になりますね。

開発の早い段階での実機確認も可能になるので、プランナーやデザイナーとの認識の相違を減らしたり、素早い改善がしていけますね。

確認用にディプロイする環境の削減

ローカル環境をそのまま外から見られるようになるので、確認用の開発環境とかを用意しなくても何とかなっちゃうわけです。開発環境を用意して、ディプロイして、場合によってはその環境を外に公開してといったプロセスが不要になりますね。

運用上で考慮すべきこと

利用する開発者にとって使いやすい仕組み

自分が開発中のフロントエンドモックサーバ(サーバサイドテンプレートとそれに対応するデータファイルを用意するだけでHTMLを出力できるもの)をVagrant環境にバンドルして使ってもらっていますが、利用者はほとんどフロントエンドエンジニアなので基本vagrant up/halt/reloadで済むようにしてます。

あとはモックサーバのログを見れるように、python製のpsdashという軽いWebモニタリングツールを同梱しました。リアルタイムでログをtailできるので、運用的にはこれで十分です。 Jahaja/psdash · GitHub

provisioningでやること

今回は必要なミドルウェアをインストールしてカスタマイズしたboxを配布したので、provisioningでChefやAnsibleを使って何かをインストールするってことは何もしてません(最近この手のツールに辟易してるというのもある)。

唯一やっていることは、ゲストOS上のNginxにBASIC認証を設定するということだけなので、各自が任意で設定ファイルのYAMLに記述した認証情報でBASIC認証をかけるというprovisioning処理をShellで書いてます。

あらかじめNginxに設定しておくのもありですが、外に出るものなので一律一緒になっちゃうような運用はやめた方がよいでしょうね。shareの度にPASS生成するのも良いですが、実機にポチポチ入力する手間考えると若干微妙ですね。

まとめ

というわけで従来の開発に風穴を開けそうなVagrant Shareなので運用方針決めたらどんどん使っていくべきじゃないかなと思っております。スタートアップ系なら尚更。