Pyramid のレシピを実行中に、次のエラーが発生しましたchef-solo
:
================================================================================
Error executing action `create` on resource 'directory[/etc/service/pyramid/supervise/status]'
================================================================================
NoMethodError
-------------
undefined method `checksum' for Chef::Resource::Directory
Resource Declaration:
---------------------
# In /var/chef-solo/cookbooks/project/recipes/pyramid.rb
22: directory "#{node['runit']['service_dir']}/pyramid#{dir}/supervise/#{f}" do
23: owner login
24: group login
25: end
26: end
Compiled Resource:
------------------
# Declared in /var/chef-solo/cookbooks/project/recipes/pyramid.rb:22:in `block (2 levels) in from_file'
directory("/etc/service/pyramid/supervise/status") do
provider Chef::Provider::Directory
action :create
retries 0
retry_delay 2
path "/etc/service/pyramid/supervise/status"
cookbook_name :project
recipe_name "pyramid"
owner "myusername"
group "myusername"
mode 420
end
これが「未定義のメソッドchecksum
」を取得するのはなぜですか?どうすればよいですか?
このエラーは一貫していないようです。シェフの実行が停止しているように見えることがあります。また、複数回実行した後、シェフがこのポイントを通過できる場合もあります。
展開スクリプトを使用してシェフがインストールされたバニラUbuntuサーバー12.04LTSで実行しています。
sudo apt-get install -y ruby1.9.1 ruby1.9.1-dev make &&
sudo gem1.9.1 install chef ohai --no-rdoc --no-ri
これは完全な Pyramid レシピです:
login = node["user"]["login"]
home = node["user"]["home"]
app_root = node["user"]["app_root"]
runit_service "pyramid" do #, :template_name => "site" do
template_name "pyramid"
owner login
group login
options({
:login => login,
:app_root => app_root,
:home => home,
:config => "#{app_root}/config/gunicorn.conf.py"
})
end
["", "/log"].each do |dir|
directory "#{node['runit']['service_dir']}/pyramid#{dir}/supervise" do
mode "0755"
end
%w(ok control status).each do |f|
directory "#{node['runit']['service_dir']}/pyramid#{dir}/supervise/#{f}" do
owner login
group login
end
end
end