Vagrant Box上的厨师:找不到加密数据包的秘密

时间:2013-02-14 17:23:22

标签: chef vagrant

使用(托管)厨师配置流浪盒时,我收到以下错误:

No such file or directory - file not found '/tmp/encrypted_data_bag_secret'

以下是导致错误的调用:

ssl = Chef::EncryptedDataBagItem.load("ssl", s[:id])

我也找不到encrypted_data_bag_secret中通常位于其他服务器上的/etc/chef

我是否错过了上传数据包秘密的配置?

这是堆栈跟踪的其余部分:

[2013-02-14T16:51:15+00:00] ERROR: Running exception handlers
[2013-02-14T16:51:15+00:00] FATAL: Saving node information to /srv/chef/file_store/failed-run-data.json
[2013-02-14T16:51:15+00:00] ERROR: Exception handlers complete
[2013-02-14T16:51:15+00:00] FATAL: Stacktrace dumped to /srv/chef/file_store/chef-stacktrace.out
[2013-02-14T16:51:15+00:00] FATAL: Errno::ENOENT: No such file or directory - file not found '/tmp/encrypted_data_bag_secret'

2 个答案:

答案 0 :(得分:27)

配置流浪盒时,如果要使用加密数据包,则必须提供数据包密钥的路径。

config.vm.provision :chef_solo do |chef|
  [...]
  chef.encrypted_data_bag_secret_key_path = '/etc/chef/encrypted_data_bag_secret'
  [...]
end

答案 1 :(得分:1)

快速修正ThomasObermüller对Draco Ater上述答案的回应。在Vagrant 1.5.1到Vagrant 1.6.5中(可能早于1.5.1;我没有尝试过),有一些变化:

  1. chef.encrypted_data_bag_secret已弃用,设置无效。
  2. Vagrant将加密密钥置于/tmp/vagrant-chef-2/encrypted_data_bag_secret_key,而不是像最初那样默认为/etc/chef/encrypted_data_bag_secret