Предупреждение chef-solo ssl при настройке
При использовании бродяг и шеф-поваров в качестве ассистента, у меня есть это предупреждение:
[web] Chef 11.12.2 Omnibus package is already installed.
[web] Running provisioner: chef_solo...
Generating chef JSON and uploading...
Running chef-solo...
stdin: is not a tty
[2014-04-10T14:48:46+00:00] INFO: Forking chef instance to converge...
[2014-04-10T14:48:46+00:00] WARN:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
SSL validation of HTTPS requests is disabled. HTTPS connections are still
encrypted, but chef is not able to detect forged replies or man in the middle
attacks.
To fix this issue add an entry like this to your configuration file:
```
# Verify all HTTPS connections (recommended)
ssl_verify_mode :verify_peer
# OR, Verify only connections to chef-server
verify_api_cert true
```
To check your SSL configuration, or troubleshoot errors, you can use the
`knife ssl check` command like so:
```
knife ssl check -c /tmp/vagrant-chef-1/solo.rb
```
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Было бы хорошо знать, какие настройки требуется шеф-повару в Vagrantfile для устранения этой проблемы.
Ответы
Ответ 1
Это предупреждение было введено в Chef 11.12.0. Подробнее см. примечания к выпуску:
Если для параметра ssl_verify_mode
установлено значение :verify_none
, шеф-повар напечатает предупреждение. Используйте knife ssl check
для проверки подключения SSL, а затем добавьте ssl_verify_mode :verify_peer
в файл конфигурации, чтобы исправить предупреждение. Хотя :verify_none
в настоящее время по умолчанию, это будет изменено в будущей версии, поэтому пользователям рекомендуется проявлять инициативу в тестирования и обновления их конфигурации SSL.
Чтобы исправить это предупреждение в Vagrant, вам необходимо внести изменения в конфигурационный файл solo.rb
, который он создает в виртуальной машине. С помощью Vagrant вы можете использовать custom_config_path
для этого.
Таким образом, вы можете изменить свой Vagrantfile следующим образом:
Vagrant.configure("2") do |config|
config.vm.provision "chef_solo" do |chef|
# the next line is added
chef.custom_config_path = "Vagrantfile.chef"
end
end
Это приводит к тому, что Vagrant включает содержимое локального файла Vagrantfile.chef
в сгенерированное solo.rb, поэтому файл должен присутствовать в вашей хост-системе, а не в VM.
Затем создайте новый файл Vagrantfile.chef
в каталоге, в котором вы также сохраните свой Vagrantfile со следующим содержимым:
Chef::Config.ssl_verify_mode = :verify_peer
Следующий запуск vagrant provision
больше не должен печатать предупреждение.
Ответ 2
У меня была эта проблема при работе с тестовой кухней.
Если это так, обратите внимание, что это значение также можно настроить непосредственно внутри .kitchen.yml
.
Если ваш стандартный блок обеспечения выглядит следующим образом:
provisioner:
name: chef_solo
вы можете просто добавить ключ solo_rb
с помощью опции ssl_verify_mode
:
provisioner:
name: chef_solo
solo_rb:
ssl_verify_mode: verify_peer
и сгенерированный файл solo.rb будет иметь эту опцию.
Ответ 3
Я знаю, что исходный вопрос касался Vagrant, но для людей, использующих драгоценный камень knife-solo
и встречающих эту ошибку, просто добавьте следующую строку в .chef/knife.rb
:
ssl_verify_mode :verify_peer
Драйвер knife-solo
примет это значение и поместит его в файл solo.rb
, который будет загружен на сервер, который является основным файлом конфигурации, переданным в chef-solo
.