Шеф-повар на бродячей шкатулке: не удается найти секретный секретный пакет данных
При создании брандмауэра с шеф-поваром (хостинга) я получаю следующую ошибку:
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'
Ответы
Ответ 1
При настройке брандмауэра вам необходимо указать путь к секретному ключу ваших пакетов данных, если вы хотите использовать зашифрованные пакеты данных.
config.vm.provision :chef_solo do |chef|
[...]
chef.encrypted_data_bag_secret_key_path = '/etc/chef/encrypted_data_bag_secret'
[...]
end
Ответ 2
Быстрая поправка к ответу Томаса Обермюллера на ответ Драко Атера выше. В Vagrant 1.5.1 через Vagrant 1.6.5 (и, возможно, раньше 1.5.1, я не пробовал), есть несколько изменений:
-
chef.encrypted_data_bag_secret
устарел, и его установка не имеет эффекта.
- Vagrant помещает зашифрованный ключ в
/tmp/vagrant-chef-2/encrypted_data_bag_secret_key
вместо того, чтобы по умолчанию выполняться /etc/chef/encrypted_data_bag_secret
, как это было на начальном этапе.