Подтвердить что ты не робот

Предупреждение 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 для устранения этой проблемы.

4b9b3361

Ответ 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.