Предупреждение ssl от chef-solo при подготовке

При использовании бродяги и шеф-повара в качестве поставщика я получил это предупреждение:

[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 для решения этой проблемы.


person holms    schedule 10.04.2014    source источник


Ответы (3)


Это предупреждение появилось в Chef 11.12.0. См. примечания к выпуску для получения подробной информации:

Когда ssl_verify_mode установлено на :verify_none, Chef распечатает предупреждение. Используйте 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 включать содержимое local файла Vagrantfile.chef в сгенерированный файл solo.rb, поэтому файл должен присутствовать в вашей хост-системе, а не на виртуальной машине.

Затем создайте новый файл Vagrantfile.chef в каталоге, где вы также храните свой Vagrantfile со следующим содержимым:

Chef::Config.ssl_verify_mode = :verify_peer

Следующий запуск vagrant provision больше не должен печатать предупреждение.

person Holger Just    schedule 10.04.2014

У меня была эта проблема при работе с тестовой кухней.

Если это также относится к вам, обратите внимание, что это значение также может быть настроено непосредственно внутри .kitchen.yml.

Если ваш стандартный блок подготовки выглядит так:

provisioner:
  name: chef_solo

вы можете просто добавить ключ solo_rb с опцией ssl_verify_mode:

provisioner:
  name: chef_solo
  solo_rb:
    ssl_verify_mode: verify_peer

и сгенерированный solo.rb будет иметь этот параметр.

person Zxaos    schedule 13.04.2014

Я знаю, что первоначальный вопрос был о Vagrant, но для людей, использующих гем knife-solo и сталкивающихся с этой ошибкой, просто добавьте следующую строку в .chef/knife.rb:

ssl_verify_mode :verify_peer

Гем knife-solo возьмет это значение и поместит его в файл solo.rb, который будет загружен на сервер, который является основным файлом конфигурации, переданным chef-solo.

person David Grayson    schedule 07.10.2014