18

使用 (hosted-)chef 配置 vagrant box 时,出现以下错误:

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'
4

2 回答 2

27

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

config.vm.provision :chef_solo do |chef|
  [...]
  chef.encrypted_data_bag_secret_key_path = '/etc/chef/encrypted_data_bag_secret'
  [...]
end
于 2013-02-14T22:34:01.897 回答
1

快速修改 Thomas Obermü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
于 2014-09-04T21:54:18.297 回答