前回書いた通り、Chef使いがVagrantを使うべき理由はSaharaの存在です。Saharaのsandboxという機能は、サーバの状態をcommit & rollback出来るのです。いわゆるRDBにおけるトランザクション機能です。実はこの実装、VirtualBoxのデフォルトの機能の単なるラッパーです。
詳しくは、sahara/lib/sahara/session.rb at master · jedi4ever/saharaのsession.rbあたりを見れば良いのですが、VBoxManageのコマンドを送っています。
def self.on(selection) self.initialize on_selected_vms(selection) do |boxname| if is_snapshot_mode_on?(boxname) puts "[#{boxname}] - snapshot mode is already on" else instance_uuid="#{@vagrant_env.vms[boxname.to_sym].uuid}" #Creating a snapshot puts "[#{boxname}] - Enabling sandbox" execute("#{@vboxcmd} snapshot \"#{instance_uuid}\" take \"#{@sandboxname}\" --pause") end end end
VagrantとAmazon EC2
さてこのVagrantですが、Version1.1からAmazon EC2を始めVirtualBox以外の仮想マシンに対応しています。もしEC2でもSaharaのトランザクション機能があれば、気絶するくらいありがたいです。しかし上記の実装を見る限り、EC2で同様の実装を求めるのは難しそうです。
そうなると困ったことに、Amazon Linux AMIを使うときにどうしたら良いのかという問題が出ます。今のところ、Amazon Linux AMIが使えるのはAmazon EC2上だけです。となると、ローカルでVagrant使いながらChefのレシピを育てて、EC2上に持っていくということが難しいです。
※ちなみにVagrant 1.1のSaharaは、ryuzeeさんがブランチを作ってくれています。
対応としては、
・Amazon EC2にトランザクション機能がサポートされることを祈る
・VM Export機能の対象にAmazon Linux AMIが含まれるのを祈る
・Amazon Linux AMIではなく、CentOSなど両方ともでサポートされているディストリビューターを使う
お祈りが多い対応なので、現実的には最後のCentOSなのかと思います。もうちょっと考え中です。
- 作者: 新原雅司
- 出版社/メーカー: 技術評論社
- 発売日: 2013/09/12
- メディア: Kindle版
- この商品を含むブログ (4件) を見る
- 作者: Mitchell Hashimoto,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/02/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (9件) を見る