旧ブログ

sambaiz.net に引っ越しました

chef soloでVagrantを入れる

前回の続き。テスト環境のためにVagrantを入れる。

knife cookbook create vagrant -o site-cookbooks/

VirtualBox

今までこんな感じでwget実行してファイル持ってきてたのが違和感があったんだけど

execute "install-jenkins-repo" do
  command <<-_EOH_
    wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
    rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
  _EOH_
  action :run
  not_if { ::File.exists?("/etc/yum.repos.d/jenkins.repo") }
end

remote_fileというのを使えばいいみたい。これを使ってリポジトリを追加してyumでインストール

site-cookbooks/vagrant/recipes/default.rb

remote_file "/etc/yum.repos.d/virtualbox.repo" do
  source "http://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo"
end

yum_package "VirtualBox-4.3.x86_64" do
  action :install
end

execute "yum-update" do
  user "root"
  command "yum -y update"
  action :run
end

Vagrant

公式からrpmを持ってきてインストール

site-cookbooks/vagrant/recipes/default.rb (追加)

remote_file "/vagrant_1.6.2_x86_64.rpm" do
  source "https://dl.bintray.com/mitchellh/vagrant/vagrant_1.6.2_x86_64.rpm"
end

package "vagrant" do
  action :install
  provider Chef::Provider::Package::Rpm
  source "/vagrant_1.6.2_x86_64.rpm"
end 

Vagrantが入った。

$ vagrant -v
Vagrant 1.6.2

続く

参考

ChefでCookbookを作成するときのちょっとしたコツ 9選 - インフラエンジニアway - Powered by HEARTBEATS

CentOS 上で Vagrant を導入するまでのメモ(CUI) - Qiita