NoMethodError:未定义方法`preferred_filename_on_disk_location'为零:NilClass
我是红宝石和厨师的新手。我试图通过模板资源创建一个文件。运行chef-apply命令后,出现“NoMethodError:未定义方法`preferred_filename_on_disk_location'为nil:NilClass”的错误。我试图谷歌它,但没有找到正确的解决方案。NoMethodError:未定义方法`preferred_filename_on_disk_location'为零:NilClass
请帮忙。
厨师申请abc.rb
配方:(厨师申请食谱)::(厨师申请配方) *模板[file.txt的]操作创建
================================================================================
Error executing action `create` on resource 'template[file.txt]'
================================================================================
NoMethodError
-------------
undefined method `preferred_filename_on_disk_location' for nil:NilClass
Resource Declaration:
---------------------
# In abc.rb
10: template "file.txt" do
11: source "file.erb"
12: mode "0666"
13: end
14:
Compiled Resource:
#在声明abc.rb:10:在`run_chef_recipe”
template("file.txt") do
action [:create]
retries 0
retry_delay 2
default_guard_interpreter :default
source "file.erb"
declared_type :template
cookbook_name "(chef-apply cookbook)"
recipe_name "(chef-apply recipe)"
mode "0666"
path "file.txt"
end
Platform:
---------
x86_64-linux
[2017-01-02T18:37:07-05:00]致命:堆栈跟踪转储到/var/chef/cache/chef-stacktrace.out [2017-01-02T18:37:07-0 5:00]致命错误:如果提交错误报告 [2017-01-02T18:37:07-05:00],请提供stacktrace.out文件的内容致命错误:NoMethodError:template [file.txt](( (主厨申请食谱)第10行)有一个错误:NoMethodError:未定义方法`preferred_filename_on_disk_location'为零:NilClass
看起来好像chef-apply
无法正确运行模板资源(请参阅https://tickets.opscode.com/browse/CHEF-5317)。作为运行食谱的更好方法,您应该使用chef-solo
。
该命令将是
chef-solo -o 'recipe[COOKBOOK_NAME]' -c CONFIG_FILE
其中CONFIG_FILE
包含厨师,例如一些配置
current_dir = File.dirname(__FILE__)
file_cache_path '/tmp/chef-cache'
cookbook_path ["#{current_dir}/cookbooks"]
data_bag_path "#{current_dir}/databags"
ssl_verify_mode :verify_none
可以调用这个文件solo.rb
,把它在你运行上面的厨师命令相同的目录,那么它看起来像
chef-solo -o 'recipe[COOKBOOK_NAME]' -c solo.rb
你想要的菜谱的名称替换COOKBOOK_NAME
如果要运行recipe_name.rb
配方而不是default.rb
配方,请添加::recipe_name
。
可能值得添加一个链接到https://learn.chef.io,因为OP似乎缺乏厨师的基本知识。如果你只知道厨师申请(只针对本地主机的快速配置),那么从单一配方与厨师应用到食谱和厨师零或独奏并不那么容易 – Tensibai
我解决了这个问题,使用厨师独奏这对当前版本是正确的。 – coderanger
欢迎来到StackOverflow。请尝试修复您问题的格式 - 如果您的代码和错误消息格式正确,将会更容易地为您提供帮助。 –
请看[ask]和[mcve] –