【发布时间】:2013-10-08 03:43:35
【问题描述】:
我是 Chef 的新手,文档(甚至是他们网站的主页)让我头晕目眩。我什至不确定我是否将它用于正确的目的。
我的意图是设置一个Vagrantfile,它告诉 Chef Solo 在我启动一个新盒子时自动安装一些软件。 这是 Chef Solo 的预期用途之一,对吗?
我不确定这是否属于“地球上最艰巨的基础设施挑战”之一,但无论如何。
我的第一个目标是让 Chef Solo 为我安装 nginx。在我的项目中,我克隆了 nginx 的食谱:
$ git clone https://github.com/opscode-cookbooks/nginx.git cookbooks/nginx
我将Vagrantfile 编辑为如下所示:
Vagrant.configure("2") do |config|
config.vm.box = "opscode-ubuntu-1204"
config.vm.provision :chef_solo do |chef|
chef.add_recipe "nginx"
end
end
当我运行 vagrant up 时,我遇到了一些错误,即找不到一些食谱(build-essential、apt 等),因此我从相应的存储库中克隆了它们。现在,当我vagrant up 时,我得到了这个输出:
[2013-10-01T20:31:03+00:00] INFO: Processing package[nginx] action install (nginx::package line 38)
Error executing action `install` on resource 'package[nginx]'
Chef::Exceptions::Exec
----------------------
apt-get -q -y install nginx=1.1.19-1ubuntu0.1 returned 100, expected 0
Resource Declaration:
---------------------
# In /tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx/recipes/package.rb
38: package node['nginx']['package_name'] do
39: notifies :reload, 'ohai[reload_nginx]', :immediately
40: end
41:
Compiled Resource:
------------------
# Declared in /tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx/recipes/package.rb:38:in `from_file'
package("nginx") do
action :install
retries 0
retry_delay 2
package_name "nginx"
version "1.1.19-1ubuntu0.1"
cookbook_name :nginx
recipe_name "package"
end
[2013-10-01T20:31:08+00:00] INFO: Running queued delayed notifications before re-raising exception
[2013-10-01T20:31:08+00:00] ERROR: Running exception handlers
[2013-10-01T20:31:08+00:00] ERROR: Exception handlers complete
[2013-10-01T20:31:08+00:00] FATAL: Stacktrace dumped to /tmp/vagrant-chef-1/chef-stacktrace.out
[2013-10-01T20:31:08+00:00] FATAL: Chef::Exceptions::Exec: package[nginx] (nginx::package line 38) had an error: Chef::Exceptions::Exec: apt-get -q -y install nginx=1.1.19-1ubuntu0.1 returned 100, expected 0
厨师从未成功完成!任何错误都应该在上面的输出中可见。请修正您的食谱,使其正确完成。
如何修改我的食谱以使其正确完成?
【问题讨论】:
标签: nginx ubuntu-12.04 chef-infra vagrant