私は Chef を初めて使用し、ドキュメンテーション (彼らの Web サイトのホームページでさえも) に頭が混乱します。正しい目的で使用しているかどうかさえわかりません。
私の意図はVagrantfile
、新しいボックスをスピンアップしたときに、Chef Solo にいくつかのソフトウェアを自動的にインストールするように指示する a をセットアップすることです。これは、Chef Solo の使用目的の 1 つです。よろしいですか?
それが「地球上で最も困難なインフラストラクチャの課題」の1 つに該当するかどうかはよくわかりませんが、何でも構いません。
私の最初の目標は、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
シェフが正常に完了しませんでした! 上記の出力にすべてのエラーが表示されるはずです。正しく完了するようにレシピを修正してください。
レシピが正しく完了するようにするにはどうすればよいですか?