Я получаю ошибки вроде
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"
, который должен искать другой файл. Я пробежал нож
через 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 с той же проблемой. Использование явных путей не помогло. Что еще можно найти или попробовать?
Вырезание и вставка образца конфигурации из 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
И это устранило мою проблему!