【问题标题】:chef client failed to read machine metadataChef 客户端无法读取机器元数据
【发布时间】:2017-02-16 01:27:58
【问题描述】:

我有几台服务器安装了厨师。 其中一个在运行时开始失败

sudo chef-client -j /etc/chef/first-boot.json

仅在其中一台机器上

调试的时候报错

Re-raising exception: NoMethodError - undefined method `[]' for nil:NilClass

痕迹是

/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.18.31/lib/chef/data_collector/messages/helpers.rb:133:in `read_node_uuid'
  /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.18.31/lib/chef/data_collector/messages/helpers.rb:111:in `node_uuid'
  /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.18.31/lib/chef/data_collector/messages.rb:40:in `run_start_message'
  /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.18.31/lib/chef/data_collector.rb:130:in `block in run_started'
  /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.18.31/lib/chef/data_collector.rb:307:in `disable_reporter_on_error'
  /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.18.31/lib/chef/data_collector.rb:128:in `run_started'
  /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.18.31/lib/chef/event_dispatch/dispatcher.rb:43:in `call'
  /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.18.31/lib/chef/event_dispatch/dispatcher.rb:43:in `block in call_subscribers'
  /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.18.31/lib/chef/event_dispatch/dispatcher.rb:34:in `each'
  /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.18.31/lib/chef/event_dispatch/dispatcher.rb:34:in `call_subscribers'

线是

metadata["node_uuid"]

元数据是通过读取data_collector_metadata.json文件来的

    def metadata
              Chef::JSONCompat.parse(Chef::FileCache.load(metadata_filename))
   rescue Chef::Exceptions::FileNotFound
          {}
 end

我正在为此苦苦挣扎...为什么这在某些服务器上有效而在此无效

【问题讨论】:

    标签: ruby chef-infra


    【解决方案1】:

    找出问题所在。 不同之处在于厨师客户端版本 启动脚本使用最新版本重新安装 chef。 使用这个 bash

    curl -L "https://www.opscode.com/chef/install.sh" | bash
    

    我已经修改为特定版本的 bash

    curl -LO https://omnitruck.chef.io/install.sh && sudo bash ./install.sh -v 12.15.19 && rm install.sh
    

    成功了

    【讨论】:

    • 你应该知道 12.0.2 已经过时了,你应该尽快修复这个问题 :) Test Kitchen 是尝试新版本 Chef 以确保它们适合你的好方法。
    猜你喜欢
    • 2021-09-05
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多