【问题标题】:Chef: cannot load such file -- moneta/basic_file厨师:无法加载这样的文件——moneta/basic_file
【发布时间】:2013-09-14 02:27:42
【问题描述】:

我正在运行一个我以前使用过无数次的食谱,当我用厨师 + 刀启动一个新的 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

我不知道发生了什么,不知道 moneta 是什么,也不知道为什么它不能从该模板构建。正如预期的那样,模板位于templates/default/authorized_keys.erb

【问题讨论】:

  • 你能展示你的资源/模板/提供者吗?
  • noMAD:我不确定你在问什么,模板本身从未改变过,这不是问题所在。这与莫内塔有关,但什么?我是否应该在我的“base.rb”配方的早期需要一个特定的 moneta 版本,以便解决 Casper 指出的这种奇怪情况?

标签: ruby chef-infra


【解决方案1】:

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

gem install moneta --version=0.6.0
gem uninstall moneta
...然后卸载所有版本的 moneta >= 0.7.0

Reference chef ticket

【讨论】:

  • 谢谢。我得出了这个结论并有一个棘手的解决方案 - 由于这些是 EC2 安装,我不能只是卸载并重新安装,我必须像这样修改我的本地刀引导文件:d.pr/i/iIwI 我不仅必须指定较新的厨师版本,但也是之前的较旧的 moneta gem。
  • 另外,如果您在项目中使用捆绑程序,您可以将版本锁定在 Gemfile: gem "moneta", "~&gt; 0.6.0"
猜你喜欢
  • 1970-01-01
  • 2019-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多