我是Chef的新手,文档(甚至是他们网站的主页)让我头晕目眩.我甚至不确定我是否将它用于正确的目的.
我的目的是设置一个Vagrantfile告诉Chef Solo在我启动一个新盒子时自动安装一些软件.这是Chef Solo的预期用途之一,我是否正确?
我不确定这是否是"地球上最严峻的基础设施挑战"之一,但无论如何.
我的第一个目标是让Solo主厨nginx为我安装.在我的项目中,我克隆了食谱nginx:
$ git clone https://github.com/opscode-cookbooks/nginx.git cookbooks/nginx
Run Code Online (Sandbox Code Playgroud)
我编辑我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
Run Code Online (Sandbox Code Playgroud)
当我跑了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 …Run Code Online (Sandbox Code Playgroud)