Chef

刀忽略 ~/.chef/knife.rb 中的 client_key

  • July 6, 2016

我收到類似的錯誤

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,但它會尋找並且從未嘗試打開。我在 Mint 17.3 和 Ubuntu 16.04LTS 上看到了同樣的問題。我試過 ChefDK 0.10.0 和 0.14.25 也有同樣的問題。使用顯式路徑沒有幫助。還有什麼要尋找或嘗試的?strace``/home/chicks/.chef/knife.rb``/etc/chef/client.pem``~/.chef/chicks.pem

從 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

這解決了我的問題!

引用自:https://serverfault.com/questions/777828