Подтвердить что ты не робот

Шеф-повар на бродячей шкатулке: не удается найти секретный секретный пакет данных

При создании брандмауэра с шеф-поваром (хостинга) я получаю следующую ошибку:

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

Ответ 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, как это было на начальном этапе.