gpt4 book ai didi

ruby - 如何修复错误 : "\xC3" on US-ASCII when bootstrapping chef-client?

转载 作者:数据小太阳 更新时间:2023-10-29 07:52:40 25 4
gpt4 key购买 nike

我有一台运行 RHEL 5.10 且带有最新补丁的 Chef 服务器和客户端虚拟机。当我尝试用

knife bootstrap nodename -N nodename -x root -P password

我收到以下错误,这会阻止在服务器上填充我的自动属性。

nodename Converging 0 resources
nodename
nodename Running handlers:
nodename [2014-07-25T14:46:40-04:00] ERROR: Running exception handlers
nodename Running handlers complete
nodename
nodename [2014-07-25T14:46:40-04:00] ERROR: Exception handlers complete
nodename [2014-07-25T14:46:40-04:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
nodename Chef Client failed. 0 resources updated in 3.383781 seconds
nodename [2014-07-25T14:46:40-04:00] ERROR: "\xC3" on US-ASCII
nodename [2014-07-25T14:46:40-04:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

这是引用的堆栈跟踪

Generated at 2014-07-25 15:01:29 -0400
Encoding::InvalidByteSequenceError: "\xC3" on US-ASCII
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/node.rb:418:in `encode'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/node.rb:418:in `to_json'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/node.rb:418:in `to_json'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/node.rb:418:in `to_json'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/node.rb:418:in `to_json'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/node.rb:418:in `to_json'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/node.rb:418:in `to_json'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/json_compat.rb:102:in `to_json'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/http/json_input.rb:34:in `handle_request'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/http.rb:217:in `block in apply_request_middleware'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/http.rb:215:in `each'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/http.rb:215:in `inject'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/http.rb:215:in `apply_request_middleware'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/http.rb:139:in `request'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/http.rb:116:in `put'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/node.rb:523:in `save'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/client.rb:287:in `save_updated_node'

这里是/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/node.rb:418

# Serialize this object as a hash
def to_json(*a)
for_json.to_json(*a) # this is line 418
end

这是运行 RHEL 5.10 的 chef-client 上 locale 命令的输出

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

注意:我只在运行 cygwin 的 Windows 7 Chef 工作站上使用 Chef-client 引导新操作系统时出现错误。如果我从基于 RHEL 的工作站引导,我不会收到错误

最佳答案

这可以通过强制使用 UTF-8 编码来解决,因此请检查您的语言环境设置并设置以下内容:

# encoding: utf-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

如果这没有帮助,请在 shell 中尝试以下行:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

就在之前:bundle exec knife solo cook root@

要检查终端支持哪个 UTF-8 语言环境,请运行:

locale -a | grep "UTF-8"

因为它可以是 C.UTF-8

此错误通常发生在 older Chef versions 上, 但在 Chef Client 12 UTF-8 will be forced by Chef it-self以避免此类问题。

另请参阅:UnicodeEncodeError: 'ascii' codec can't encode character .

关于ruby - 如何修复错误 : "\xC3" on US-ASCII when bootstrapping chef-client?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24962828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com