- 2013-12-25 (水) 17:30
- Advent Calendar 2013 | Vagrant
Shin x blog Advent Calendar 2013 の最終日です。
12/1 から毎日書いてきた Shin x blog Advent Calendar 2013 ですが、いよいよ今日が最終日です。
今日は、クリスマスということで、ささやかながらちょっとしたプレゼントを用意してみました:D
VagrantX
GUI で Vagrant が利用できる VagrantX というツールをリリースしました。
http://shin1x1.github.io/vagrantx/
Vagrant は、とても良いツールなのですが、いかんせんターミナル(黒い画面)で操作するものなので、それに慣れていない人にとっては、少し敬遠されている面があります。Vagrantfile を自分で書くような人はターミナルでどんどん使うべきなのですが、用意された Vagrantfile をただ使うだけであれば、vagrant up
や vagrant halt
など基本的な操作しか行わないので、そのためだけに慣れないターミナルを使うのもどうかなという疑問がありました。
そこで、GUI アプリケーションから、基本的な vagrant コマンドが実行できるよう、このアプリケーションを作りました。
VagrantX は、Mac OS X 向けのアプリケーションで、現在は、10.8 (Mountain Lion)、10.9 (Mavericks) で動作するようになっています。
インストール
VagrantX は、Vagrant を GUI から操作するアプリケーションなので、Vagrant 本体や VirtualBox など Vagrantを通常利用するために必要なアプリケーションは別途インストールする必要があります。
Vagrant も VirtualBox もパッケージで配布されているので、ダウンロードして、インストールするだけです。
VagrantX は、ZIP ファイルとして GitHub に公開しています。公式サイトにある「.zip」リンクをクリックするとダウンロードがはじまります。
ダウンロードした ZIP ファイルを展開します。VagrantX.app がアプリケーション本体になります。このまま起動して試すこともできますし、必要であれば /Applications フォルダへコピーして下さい。
操作
VagrantX を起動すると下記のような画面が表示されます。
まずは仮想マシンを操作する対象の Vagrantfile を画面右上にある Read
ボタンで選択します。選択が完了すると、vagrant status
が実行され、現在の仮想マシンの状態が表示されます。
あとは、仮想マシンの起動、停止、破棄などをボタンで実行するだけです。
仮想マシンを起動する際は Up
ボタン、停止する際は halt
ボタン、破棄する際は destory
ボタンをクリックして下さい。それぞれのボタンは、仮想マシンの状態により有効になったり、無効になったりします。(仮想マシンが実行中であれば、Up ボタンは無効など)
現在サポートしている Vagrant コマンドは以下です。
- vagrant up
- vagrant halt
- vagrant destory
- vagrant provision
- vagrant ssh
アンインストール
ダウンロードしてきた VagrantX.app を削除するだけです。
開発の話
VagrantX は、RubyMotion で書いています。RubyMotion といえば、iOS アプリケーションの情報はわりと見つかるのですが、OSX アプリケーションの情報はほとんどなく、結局は、MacRuby の情報や Objective-C の情報を参考にして、開発を進めました。幸い、RubyMotion は、Ruby シンタックスの Objective-C と言っても良いくらい層が薄いので、ずばり RubyMotion ではない情報でも転用しやすいのは良かったです。
アイデアは、夏前頃からあったのですが、開発は、9 月に参加した開発合宿から開始しました。開発合宿は、2 泊 3 日だったのですが、1 日半で、仮想マシンの起動などベースのところは動くところまでいきました。OSX アプリケーションを作るのが初めてだったので、紆余曲折はあったのですが、これまで Windows や Java で GUI アプリケーションを作った経験があり、概念自体は理解していたので、OSX(Cocoa) 固有の問題点を一つづつ潰していきました。
それから隙間時間に序々に改良を進めていき、ようやくリリースすることができました。
と、言えば、聞こえは良いのですが、実は塩漬けになっている期間も長く、このままだと HDD の肥やしになって終わる可能性もあったので、まずは公開してみようと思い、今回リリースしました。( Chef ゆく年くる年で背中を押されたのもありますね:D )
基本機能は動いているのですが、まだ不具合や不足機能などがあるので、現在はプレリリースという形にしています。
さいごに
Vagrant は、優れたコマンドラインツールなので、GUI が必要なのか?という疑問も当初ありました。
ただ、Vagrant による開発環境の共有、そしてユーザの広がりを見ると、ターミナルを使わない人にこそ、Vagrant が便利なのではと思うようになりました。
まずは公開してみて、反応を見つつ、今後の開発を進めていきたいと思います。興味がある方は、一度ダウンロードして使ってみて下さい。
http://shin1x1.github.io/vagrantx/
なお不具合や改善点などあれば、GitHub の issue へ投稿をお願いします。
Merry Christmas!
お願い
喫緊の課題として、ロゴデザインがあります。
自分で作ってみたのですが、絶望的に残念な感じなので、もし書いても良いよという奇特な方がいれば、お手伝い頂ければとっても嬉しいです。やってみようかなという方は、GitHub の issue にてコメントをお願いしますm(_ _)m
- Newer: 25 日間毎日 blog を書いてわかったこと
- Older: vagrant-serverspec で TDD ライクにサーバ構築を行う