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

How to get value of encrypted data bag secret within Test Kitchen

我在kitchen.yml中添加了data_bags_pathencrypted_data_bag_secret_key_path如下:

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 如下:

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'

一般来说,您可能不想在测试中使用加密数据包。如果你出于某种原因确实想使用加密(真的,不要)使用正常的 data_bag_item() API 为你加载密钥。