2016-07-09 1 views
2

я добавил data_bags_path и encrypted_data_bag_secret_key_path в kitchen.yml следующим образом:Как получить значение зашифрованного мешка данных секрета в Test Kitchen

provisioner: 
    name: chef_zero 
    chef_omnibus_url: omni-url/chef/install.sh 
    roles_path: 'test/integration/default/roles' 
    data_bags_path: "test/integration/default/data_bags" 
    encrypted_data_bag_secret_key_path: "test/integration/default/encrypted_data_bag_secret" 

Я считаю, приведенный выше Копирует encrypted_data_bag_secret в файл с именем encrypted_data_bag_secret под /tmp/kitchen/

Вот почему, в моем рецепте я звоню тайну следующим образом:

secret = Chef::EncryptedDataBagItem.load_secret("/tmp/kitchen/encrypted_data_bag_secret") 
encryptkey = Chef::EncryptedDataBagItem.load("tokens", "encryptkey", secret) 

Тем не менее, тест кухня неудачу с ошибкой при слежении:

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

ответ

2

В общем, вы, вероятно, не хотите использовать зашифрованные пакеты данных в ваших тестах. Если вы действительно хотите использовать шифрование по какой-либо причине (действительно, не используйте), используйте обычный API data_bag_item(), который выполняет загрузку ключа для вас.

+0

спасибо. Я могу заставить его работать с помощью 'encryptkey = data_bag_item (« tokens »,« encryptkey »)' – meallhour

+1

, можете ли вы предложить, почему зашифрованные пакеты данных не должны использоваться в тестовой кухне? – meallhour

+0

Потому что нужно проверить ваш код, а не проверять, что шеф-повар работает правильно. – coderanger

Смежные вопросы