web-dev-qa-db-ja.com

プロビジョニング時のchef-solossl警告

放浪者とシェフをプロビジョナーとして使用すると、次の警告が表示されます。

[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でどのような設定を必要とするかを知っておくと便利です。

31
holms

この警告は、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を次に実行しても、警告は出力されなくなります。

47
Holger Just

テストキッチンで作業しているときにこの問題が発生しました。

それが当てはまる場合は、この値を.kitchen.yml内で直接構成することもできることに注意してください。

標準のプロビジョナーブロックが次のようになっている場合:

provisioner:
  name: chef_solo

solo_rbオプションを使用してssl_verify_modeキーを追加するだけです。

provisioner:
  name: chef_solo
  solo_rb:
    ssl_verify_mode: verify_peer

生成されたsolo.rbにはこのオプションが設定されます。

12
Zxaos

元の質問はVagrantに関するものでしたが、knife-solo gemを使用していてこのエラーが発生した場合は、.chef/knife.rbに次の行を追加してください:

ssl_verify_mode :verify_peer

knife-solo gemはその値を受け取り、サーバーにアップロードされるsolo.rbファイルに入れます。これは、chef-soloに渡されるメインの構成ファイルです。

8
David Grayson