読者です 読者をやめる 読者になる 読者になる

YTsudaのブログ

1985生まれ、男。東京で働くWeb制作者

Chef(Vagrant) で "apt-get update" する方法

chef vagrant

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