当使用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中需要什么样的设置来解决这个问题。
答案 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
的主要配置文件。