Przechodzę przez samouczek szefa kuchni Peepcode, o ile dobrze. Z jakiegoś powodu wystąpił błąd podczas używania zmiennych szablonu. Przykład dotyczy nginx.Szablon szefa kuchni zmienna @node wydaje się rzucać błąd
W nginx/atrybutów/nginx.rb mam:
default[:nginx][:worker_processes] = 4
W nginx.conf.erb szablonu odsyłam do:
worker_processes <%= @node[:nginx][:worker_processes] %>;
Poniżej znajduje się błąd pojawia działa kucharz -solo:
Template Context:
-----------------
on line #2
1: user www-data;
2: worker_processes <%= @node[:nginx][:worker_processes] %>;
3:
4: error_log /var/log/nginx/error.log;
5: pid /var/run/nginx.pid;
[2013-07-14T19:46:36+02:00] ERROR: Running exception handlers
[2013-07-14T19:46:36+02:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated
[2013-07-14T19:46:36+02:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2013-07-14T19:46:36+02:00] FATAL: Chef::Mixin::Template::TemplateError: undefined method `[]' for nil:NilClass
Pozostałe części wyjściu błędu:
Starting Chef Client, version 11.4.4
Compiling Cookbooks...
Converging 3 resources
Recipe: nginx::default
* package[nginx] action install (up to date)
* service[nginx] action enable (up to date)
* service[nginx] action start (up to date)
* template[/etc/nginx/nginx.conf] action create
================================================================================
Error executing action `create` on resource 'template[/etc/nginx/nginx.conf]'
================================================================================
Chef::Mixin::Template::TemplateError
------------------------------------
undefined method `[]' for nil:NilClass
Resource Declaration:
---------------------
# In /cookbooks/nginx/recipes/default.rb
8: template "/etc/nginx/nginx.conf" do
9: notifies :reload, "service[nginx]"
10: end
Compiled Resource:
------------------
# Declared in /cookbooks/nginx/recipes/default.rb:8:in `from_file'
template("/etc/nginx/nginx.conf") do
provider Chef::Provider::Template
action "create"
retries 0
retry_delay 2
path "/etc/nginx/nginx.conf"
backup 5
source "nginx.conf.erb"
cookbook_name :nginx
recipe_name "default"
end
Myślę, że ma to związek ze zmianami wprowadzonymi przez szefa kuchni 10 do 11 - atrybuty są traktowane nieco inaczej. Peepcode został stworzony przy pomocy szefa kuchni 10, wierzę, może spróbuje najpierw użyć szefa kuchni 10 i przejść na 11 później? – house9