我收到类似错误
WARN: Failed to read the private key /etc/chef/client.pem: #<Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/chef/client.pem>
ERROR: Your private key could not be loaded from /etc/chef/client.pem
Check your configuration file and ensure that your private key is readable
尽管~/.chef/knife.rb
包含
client_key "#{ENV['HOME']}/.chef/chicks.pem"
这应该会让它寻找不同的文件。我运行了knife
一下strace
,发现它正在读取/home/chicks/.chef/knife.rb
,但它随后寻找/etc/chef/client.pem
并且从不尝试打开~/.chef/chicks.pem
。我发现 Mint 17.3 和 Ubuntu 16.04LTS 也存在同样的问题。我尝试过 ChefDK 0.10.0 和 0.14.25,但问题相同。使用显式路径没有帮助。还有什么需要寻找或尝试的?
答案1
从 Confluence 剪切并粘贴示例配置会导致 UTF-8 字符,从而knife.rb
不会knife
发出任何警告。(呸。)将 转换knife.rb
为 ASCII 可修复此问题:
cd ~/.chef
iconv -c -f utf8 -t ascii knife.rb > clean-knife.rb
mv clean-knife.rb knife.rb
这解决了我的问题!