2013-02-14 61 views
18

當供應與(hosted-)廚師顛沛流離的盒子,我得到了以下錯誤:廚師對流浪箱:找不到加密數據包的祕密

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' 

回答

27

當供應顛沛流離中,你必須提供一個路徑數據包的密鑰,如果你想使用加密的數據包。

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

好男人!我發現這條信息不通。這很奇怪,因爲在knife.rb文件中該設置被稱爲'encrypted_data_bag_secret_key'。謝謝! – j7nn7k 2013-02-15 07:43:08

+3

https://github.com/mitchellh/vagrant/pull/398 – 2013-02-15 09:37:09

+0

請注意,您必須在本地機器上爲chef.encrypted_data_bag_secret_key_path提供路徑。然後它會把密鑰放到chef.encrypted_data_bag_secret,默認是「/ etc/chef/encrypted_data_bag」。 – 2014-02-19 15:55:25

1

快速修改ThomasObermüller對Draco Ater上面答案的迴應。在流浪1.5.1通過流浪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
+0

它總是流浪漢 - 廚師2?在我第一次運行時,它把它放在流浪廚師-1。 – Jack 2014-12-15 22:42:26

+0

你可能使用了流浪1嗎? – 2014-12-15 22:48:19

+0

看起來像我在'1.6.5'。但它也告訴我最新的版本是'1.7.1'。奇怪的。 – Jack 2014-12-16 00:17:45