Allied ArchitectsAllied ArchitectsEngineer Blog

Vagrantイメージを自作した話 veewee編

2014/06/30 インフラ

こんにちは、村上です。
前回の記事の続きです。

veewee

Packerを使って仮想マシンを作ることを一旦断念してぐぐっていたところ、veeweeというツールを見つけました。
ruby製のツールで、Vagrantイメージを簡単に作れるようです。
Packerにも veewee-to-packerというtemplateがあり、これを使えばPackerでも簡単にできたかもしれませんね。

対応状況

veeweeは

  • VirtualBox
  • VMware
  • KVM
  • Parallels

に対応しているようです。

インストール

インストールは
https://github.com/jedi4ever/veewee#getting-started
を参考にやりましょう。
依存パッケージが入ってれば、基本的には

で、できます。

インストールが終わると、veeweeコマンドが使えるようになります。
コマンドのhelpを見てみるとこのような感じです。

veewee help

Commands:
veewee fusion # Subcommand for Vmware fusion
veewee help [COMMAND] # Describe available commands or one specific command
veewee kvm # Subcommand for KVM
veewee parallels # Subcommand for Parallels
veewee vbox # Subcommand for VirtualBox
veewee version # Prints the Veewee version information

今回使うのはvboxですが、helpを見るとこんな感じでした。オプションが多かったので必要なところのみ抜粋しています

veewee vbox help

Commands:
veewee vbox build [BOX_NAME] # Build box
veewee vbox destroy [BOX_NAME] # Destroys the virtualmachine that was built
veewee vbox export [BOX_NAME] # Exports the basebox to the vagrant format
veewee vbox ssh [BOX_NAME] [COMMAND] # SSH to box
veewee vbox templates # List the currently available templates

仮想マシン作成

veewee vbox templates を使用すると、テンプレートが用意されてあるOSの一覧が表示されます。

veewee vbox define ” ‘CentOS-6.4-x86_64-netboot’ –workdir=/path/to/workdir

このコマンドをを使用したい名前に書き換えて実行すると仮想マシンのworkspaceが作られます。
同時に、box_nameの下層にディレクトリが作られて、各種スクリプトが配置されます。

find .

./definitions
./definitions/”
./definitions/”/base.sh
./definitions/”/cfengine.sh
./definitions/”/chef.sh
./definitions/”/cleanup.sh
./definitions/”/definition.rb
./definitions/”/ks.cfg
./definitions/”/puppet.sh
./definitions/”/ruby.sh
./definitions/”/vagrant.sh
./definitions/”/virtualbox.sh
./definitions/”/vmfusion.sh
./definitions/”/zerodisk.sh

veewee vbox build ‘box_name’ –workdir=path/to/veewee
を実行すると、ks.cfgの内容に沿ってOSのインストールが開始されます。
が、OSやバージョンによってはks.cfgに記載されたURLがすでに無くなっていたりして止まってしまいます。
CentOS64のnetinstallでは、ks.cfgに

が指定されていますが、このURLはすでに404になってしまっています。
幸い、僕は何度もOSのネットインストールをやったことがあったので別のリポジトリを指定してインストールすることができました。
実際にはここのものを使わせてもらってます。
http://ftp.riken.jp/Linux/centos/6.4/os/x86_64/images/

OSがインストールされるとその他のbaseだったりchefだったりのスクリプトが実行されて各種ツールが自動的にインストールされます。
何をされているか分からなくて気持ち悪いという人は、スクリプトやレシピの内容を見て、必要に応じて編集しましょう。
rubyやchefのインストール, vagarnt用のユーザを作ったりしています。

こうしてveeweeのイメージを作ったら、vagrantのパッケージを作ることができます。

大した時間もかからず、これで自分用のvagrant boxを作ることができました。
作成されたイメージファイルを参照可能なところに置いて、vagrantのコマンドで参照すると使うことができます。

http://www.vagrantbox.es/ でvagrantのイメージは落とせますが
すでにどういう環境が入っているかを調べないといけないのでせっかくなら自分で作ってみようと思ってやってみましたが、思ったより簡単に作れるものですね。

それではまた。

しゃかまる
  • しゃかまる
  • エンジニア
  • フロントエンドだったりバックエンドだったりサーバだったり その時の流行りと気分でいろいろ迷走してます。

RELATION ENTRY

JSでページ遷移しないフォームを作る(Advent Calendar 24日目(仮))

JSでページ遷移しないフォームを作る(A...

2014/12/25 2014 Advent Calendar

こんにちは、Advent Calendar 24日目(仮)を担当する村上です。 昨日の紹介と違う理由は推して知るべしです。 前回と前々回がゆるふわ記事だったのでマジメな記事です。 今回は素のJSでページ遷移しないフォームを作った話を書こうと思います。 目的 ページ遷移しないフォームを作ることが...

続きを読む

シェル芸人への道 その1 (Advent Calendar 16日目)

シェル芸人への道 その1 (Advent...

2014/12/16 Shell

こんにちは、しゃかまるです。 Advent Calendarも16日目です。進捗どうですか?私はダメです。 今回もゆるふわな記事です。 概要 シェル芸ってご存知ですか? こんな感じのことをされている方々です。 私もCUIが好きでgitの操作は全てターミナルでやったりしてるタイプですが、シェル芸人...

続きを読む

しゃかまるの記事一覧へ

ページTOPへ