如何在Test Kitchen中获取加密数据包的秘密值

时间:2016-07-09 17:56:17

标签: ruby chef chef-recipe chef-solo

我在data_bags_path中添加了encrypted_data_bag_secret_key_pathkitchen.yml,内容如下:

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复制到/tmp/kitchen/

下名为encrypted_data_bag_secret的文件中

这就是为什么,在我的食谱中,我称之为秘密如下:

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'

1 个答案:

答案 0 :(得分:2)

通常,您可能不希望在测试中使用加密数据包。如果您确实想要出于某种原因使用加密(实际上,请不要)使用正常的data_bag_item() API来为您执行密钥加载。