Chef(Vagrant) で "apt-get update" する方法
vimがインストールできなかった
Opscodeから引いてきたレシピで vim をインストールしようとしたのですが、以下のようなエラーが出てインストールできませんでした。
Chef::Exceptions::Exec ---------------------- apt-get -q -y install vim=2:7.3.429-2ubuntu2.1 returned 100, expected 0 Resource Declaration: --------------------- # In /tmp/vagrant-chef-1/chef-solo-1/cookbooks/vim/recipes/default.rb 8: # 9: package "vim" do 10: action :install 11: end 12:
vimの該当バージョンが見つからないということは、"apt-get update" をすれば良いのだろうと踏んだのですが、Chefではその方法がわからず。
ググってみたところ、Opscodeのaptレシピを使えば良いとわかりました。
Chef ignores apt-get update - stackoverflow
Opscode の "apt" cookbook を使う
cookbookのダウンロード
$ cd ~/vagrant/cookbooks $ git clone https://github.com/opscode-cookbooks/apt.git
Vagrantfile に add_recipe
Vagrantfile の該当箇所を編集し、"apt" cookbook の default.rb が実行されるようにします。
config.vm.provision :chef_solo do |chef| chef.add_recipe "apt" chef.add_recipe "vim" end
provision
"vagrant provision" はすでにupされているVMにレシピを適用するコマンドです。
$ cd ~/vagrant $ vagrant provision