Ruby 厨师长:无法加载这样的文件——moneta/basic\u文件

Ruby 厨师长:无法加载这样的文件——moneta/basic\u文件,ruby,chef-infra,Ruby,Chef Infra,我正在运行一个我以前使用过无数次的菜谱,当我使用chef+knife启动一个新的EC2实例时,我会遇到这些错误 [2013-01-30T23:44:48+00:00] INFO: Processing user[dan] action create (/var/chef/cache/cookbooks/users/providers/manage.rb line 65) [2013-01-30T23:44:48+00:00] INFO: user[dan] created [2013-0

我正在运行一个我以前使用过无数次的菜谱,当我使用chef+knife启动一个新的EC2实例时,我会遇到这些错误

[2013-01-30T23:44:48+00:00] INFO: Processing user[dan] action create (/var/chef/cache/cookbooks/users/providers/manage.rb line 65)

 [2013-01-30T23:44:48+00:00] INFO: user[dan] created

 [2013-01-30T23:44:48+00:00] INFO: Processing directory[/home/dan/.ssh] action create (/var/chef/cache/cookbooks/users/providers/manage.rb line 81)

 [2013-01-30T23:44:48+00:00] INFO: directory[/home/dan/.ssh] created directory /home/dan/.ssh

 [2013-01-30T23:44:48+00:00] INFO: directory[/home/dan/.ssh] owner changed to 2003

 [2013-01-30T23:44:48+00:00] INFO: directory[/home/dan/.ssh] group changed to 2003

 [2013-01-30T23:44:48+00:00] INFO: directory[/home/dan/.ssh] mode changed to 700

 [2013-01-30T23:44:48+00:00] INFO: Processing template[/home/dan/.ssh/authorized_keys] action create (/var/chef/cache/cookbooks/users/providers/manage.rb line 88)

 [2013-01-30T23:44:48+00:00] FATAL: Could not load Moneta back end "BasicFile"


 ================================================================================

 Error executing action `create` on resource 'template[/home/dan/.ssh/authorized_keys]'

 ================================================================================


 LoadError

 ---------

 cannot load such file -- moneta/basic_file


 Resource Declaration:

 ---------------------

 # In /var/chef/cache/cookbooks/users/providers/manage.rb


  88:         template "#{home_dir}/.ssh/authorized_keys" do

  89:           source "authorized_keys.erb"

  90:           cookbook new_resource.cookbook

  91:           owner u['id']

  92:           group u['gid'] || u['id']

  93:           mode "0600"

  94:           variables :ssh_keys => u['ssh_keys']

  95:         end

  96:       end


 Compiled Resource:

 ------------------

 # Declared in /var/chef/cache/cookbooks/users/providers/manage.rb:88:in `block (2 levels) in class_from_file'


 template("/home/dan/.ssh/authorized_keys") do

   provider Chef::Provider::Template

   action "create"

   retries 0

   retry_delay 2

   path "/home/dan/.ssh/authorized_keys"

   backup 5

   source "authorized_keys.erb"

   cookbook "users"

   variables {:ssh_keys=>"ssh-rsa <REPLACED BECAUSE SHUTUP>!"}

   cookbook_name "users"

   mode "0600"

   owner "dan"

   group "dan"

 end


 [2013-01-30T23:44:48+00:00] ERROR: Running exception handlers

 [2013-01-30T23:44:48+00:00] FATAL: Saving node information to /var/chef/cache/failed-run-data.json

 [2013-01-30T23:44:48+00:00] ERROR: Exception handlers complete

 [2013-01-30T23:44:48+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out

 [2013-01-30T23:44:48+00:00] FATAL: LoadError: template[/home/dan/.ssh/authorized_keys] (/var/chef/cache/cookbooks/users/providers/manage.rb line 88) had an error: LoadError: cannot load such file -- moneta/basic_file
[2013-01-30T23:44:48+00:00]信息:处理用户[dan]操作创建(/var/chef/cache/cookbooks/users/providers/manage.rb第65行)
[2013-01-30T23:44:48+00:00]信息:用户[dan]已创建
[2013-01-30T23:44:48+00:00]信息:处理目录[/home/dan/.ssh]操作创建(/var/chef/cache/cookbooks/users/providers/manage.rb第81行)
[2013-01-30T23:44:48+00:00]信息:目录[/home/dan/.ssh]已创建目录/home/dan/.ssh
[2013-01-30T23:44:48+00:00]信息:目录[/home/dan/.ssh]所有者已更改为2003
[2013-01-30T23:44:48+00:00]信息:目录[/home/dan/.ssh]组更改为2003
[2013-01-30T23:44:48+00:00]信息:目录[/home/dan/.ssh]模式更改为700
[2013-01-30T23:44:48+00:00]信息:处理模板[/home/dan/.ssh/authorized_keys]操作创建(/var/chef/cache/cookbooks/users/providers/manage.rb第88行)
[2013-01-30T23:44:48+00:00]致命:无法加载Moneta后端“基本文件”
================================================================================
执行操作“在资源”模板[/home/dan/.ssh/authorized_keys]上创建”时出错
================================================================================
装载误差
---------
无法加载这样的文件--moneta/basic\u文件
资源声明:
---------------------
#在/var/chef/cache/cookbooks/users/providers/manage.rb中
88:模板“#{home_dir}/.ssh/authorized_key”do
89:来源“授权密钥.erb”
90:cookbook new_resource.cookbook
91:所有者u['id']
92:u组['gid']|u['id']
93:模式“0600”
94:变量:ssh\u key=>u['ssh\u key']
95:完
96:完
汇编资源:
------------------
#在/var/chef/cache/cookbooks/users/providers/manage.rb:88:in`block(2级)in class_from_file'
模板(“/home/dan/.ssh/authorized_key”)是否
提供者厨师::提供者::模板
“创建”操作
重试0次
重试\u延迟2
路径“/home/dan/.ssh/authorized_key”
备份5
来源“authorized_keys.erb”
食谱“用户”
变量{:ssh_keys=>“ssh rsa!”}
cookbook_名称“用户”
模式“0600”
“丹”的主人
“丹”组
结束
[2013-01-30T23:44:48+00:00]错误:正在运行异常处理程序
[2013-01-30T23:44:48+00:00]致命:将节点信息保存到/var/chef/cache/failed-run-data.json
[2013-01-30T23:44:48+00:00]错误:异常处理程序已完成
[2013-01-30T23:44:48+00:00]致命:Stacktrace转储到/var/chef/cache/chef-Stacktrace.out
[2013-01-30T23:44:48+00:00]致命:加载错误:模板[/home/dan/.ssh/authorized_keys](/var/chef/cache/cookbooks/users/providers/manage.rb第88行)出现错误:加载错误:无法加载此类文件--moneta/basic_文件
我不知道发生了什么,moneta是什么,也不知道为什么它不能从该模板构建。模板位于
templates/default/authorized_keys.erb
中,与预期一致。

这是最近升级的“moneta”gem。幸运的是,有一个简单的修复方法(回滚!),除非您在gem中使用新功能。执行以下操作:

gem安装moneta——版本=0.6.0

gem卸载moneta

... 然后卸载所有版本的moneta>=0.7.0


你能展示一下你的资源/模板/提供者吗?诺玛德:我不确定你在问什么,模板本身从来没有改变过,也不是问题所在。这和莫内塔有关,但是什么?我是否应该在我的“base.rb”配方的很早的时候就需要一个特定的moneta版本,这样它就可以修复Casper指出的这种bizare情况?谢谢。我得出这个结论,并有一个棘手的解决方案-由于这些是EC2安装,我不能只是卸载和重新安装,我不得不修改我的本地刀子引导文件这样:我不仅要指定较新的厨师版本,而且还要指定之前较旧的moneta gem。此外,如果你在项目中使用bundler,您只需将版本锁定在
gem文件中即可
gem“moneta”、“~>0.6.0”