Назад | Перейти на главную страницу

Knife игнорирует client_key в ~ / .chef / knife.rb

Я получаю такие ошибки, как

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 с той же проблемой. Использование явных путей не помогло. Что еще искать или попробовать?

Вырезание и вставка образца конфигурации из 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

И это устранило мою проблему!