放浪者とシェフをプロビジョナーとして使用すると、次の警告が表示されます。
[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でどのような設定を必要とするかを知っておくと便利です。
この警告は、Chef11.12.0で導入されました。詳細については、 リリースノート を参照してください。
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はlocalファイルVagrantfile.chef
の内容を生成されたsolo.rbに含めます。したがって、このファイルはホスト上に存在する必要がありますVMではなくシステム。
次に、次の内容のVagrantfileも保存するディレクトリに新しいファイルVagrantfile.chef
を作成します。
Chef::Config.ssl_verify_mode = :verify_peer
vagrant provision
を次に実行しても、警告は出力されなくなります。
テストキッチンで作業しているときにこの問題が発生しました。
それが当てはまる場合は、この値を.kitchen.yml
内で直接構成することもできることに注意してください。
標準のプロビジョナーブロックが次のようになっている場合:
provisioner:
name: chef_solo
solo_rb
オプションを使用してssl_verify_mode
キーを追加するだけです。
provisioner:
name: chef_solo
solo_rb:
ssl_verify_mode: verify_peer
生成されたsolo.rbにはこのオプションが設定されます。
元の質問はVagrantに関するものでしたが、knife-solo
gemを使用していてこのエラーが発生した場合は、.chef/knife.rb
に次の行を追加してください:
ssl_verify_mode :verify_peer
knife-solo
gemはその値を受け取り、サーバーにアップロードされるsolo.rb
ファイルに入れます。これは、chef-solo
に渡されるメインの構成ファイルです。