配置时,chef-solo ssl警告

时间:2014-04-10 14:51:38

标签: chef vagrant chef-solo

当使用vagrant和chef作为供应者时,我收到了这个警告:

[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中需要什么样的设置来解决这个问题。

3 个答案:

答案 0 :(得分:47)

这个警告是在Chef 11.12.0中引入的。有关详细信息,请参阅release notes

  

ssl_verify_mode设置为:verify_none时,Chef将打印一个   警告。使用knife ssl check测试SSL连接,然后添加   ssl_verify_mode :verify_peer到你的配置文件来修复   警告。虽然:verify_none目前是默认值,但这将是   在未来版本中进行了更改,因此鼓励用户积极参与   测试和更新他们的SSL配置。

要在Vagrant中修复此警​​告,您必须修改它在VM中创建的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的目录中创建一个新文件Vagrantfile.chef,其中包含以下内容:

Chef::Config.ssl_verify_mode = :verify_peer

下一轮vagrant provision不应再打印警告。

答案 1 :(得分:12)

在使用测试厨房时遇到了这个问题。

如果您也是这种情况,请注意,此值也可以在.kitchen.yml内直接配置。

如果您的标准配置程序块如下所示:

provisioner:
  name: chef_solo

您只需使用solo_rb选项添加ssl_verify_mode密钥:

provisioner:
  name: chef_solo
  solo_rb:
    ssl_verify_mode: verify_peer

并且生成的solo.rb将设置此选项。

答案 2 :(得分:8)

我知道最初的问题是关于Vagrant,但是对于使用knife-solo gem的人并遇到此错误,只需将以下行添加到.chef/knife.rb

ssl_verify_mode :verify_peer

knife-solo gem将获取该值并将其放入上传到服务器的solo.rb文件中,该文件是传递给chef-solo的主要配置文件。