veewee で CentOS のベースBOX作成に失敗する件
veewee で CentOS 6.0 のベースBOX を作成しようとすると "vagrant basebox validate" に失敗する。OS は起動するが、gem と puppet と chef がインストールされていない。どうも puppet をパッケージでインストールしようとして失敗しているようだ。puppet を gem でインストールするように postinstall.sh などを修正すれば良さげ。
--- postinstall.sh.orig 2011-09-06 22:44:02.000000000 +0900 +++ postinstall.sh 2011-09-06 22:45:01.000000000 +0900 @@ -2,14 +2,6 @@ date > /etc/vagrant_box_build_time -cat > /etc/yum.repos.d/puppetlabs.repo << EOM -[puppetlabs] -name=puppetlabs -baseurl=http://stahnma.fedorapeople.org/puppetlabs/6/\$basearch -enabled=1 -gpgcheck=0 -EOM - cat > /etc/yum.repos.d/epel.repo << EOM [epel] name=epel @@ -18,12 +10,13 @@ gpgcheck=0 EOM -yum -y install puppet facter ruby-devel rubygems +yum -y install ruby-devel rubygems yum -y erase wireless-tools gtk2 libX11 hicolor-icon-theme avahi freetype bitstream-vera-fonts yum -y clean all -rm /etc/yum.repos.d/{puppetlabs,epel}.repo +rm /etc/yum.repos.d/epel.repo gem install --no-ri --no-rdoc chef +gem install --no-ri --no-rdoc puppet # Installing vagrant keys mkdir /home/vagrant/.ssh
これで、"vagrant basebox validate" で確認してみたらうまくいった。
ベースBOX作成までの一連の流れを示す。
$ vagrant basebox define centos6 CentOS-6.0-x86_64 (definitions/centos6/postinstall.sh を修正) $ vagrant basebox build centos6 $ vagrant basebox validate centos6 $ vagrant basebox export centos6