0

在我的厨师食谱中,我基本上是在解密几个数据包:

1. test.json 2. sample.json

解密后获得的数据接下来将用于在我的厨房节点上创建文件。基本上,test.json并且sample.json使用我拥有的密钥(从其中test.json获得test.txtsample.json从中获得sample.txt都是纯文本文件)在一个名为的脚本中进行加密,该脚本gendatabags.rb创建这些文件并将它们放在各自的位置。请注意,gendatabags.rbsecret key pathandinput file path作为输入参数。现在我想集成测试这个流程,我期待使用我生成的测试密钥。我想提供两者的测试版本,test.txt其中sample.txt包含一些虚拟字符串。问题是,现在我想在compile time我的食谱。有人可以提供一些关于如何实现这一目标的信息吗?

谢谢!

4

1 回答 1

0

强烈不推荐这个。从技术上讲,您可以使用执行资源来执行此操作,但是您会遇到各种时间问题,并且无论如何都会破坏拥有加密数据包的目的。

现在,如果您尝试测试一个简单的虚拟加密数据包。您将像往常一样制作数据包,但添加了 -z 开关

knife data bag create <data bag name> -z
knife data bag from file <data bag name> <path to .json file> --secret-file <path to encryption key file> -z

这将使用您的数据包名称创建一个本地目录,并将加密的数据包项放置在其中,名称为 json 文件的“id”值。

-z 默认将数据包和项目放入 /users//data_bags

从那里您可以编辑您的 .kitchen.yml 以指向您的数据包和密钥

Suites:
  - name: default
  run_list:
  data_bags_path: <path to data_bags dir>
  encrypted_data_bag_secret_key_path: <path to secret_file>

如果您有多个套件使用相同的 data_bags 路径,则可以将声明移至

provisioner:
  name: chef_zero
  data_bags_path: <path to data_bags dir>
  encrypted_data_bag_secret_key_path: <path to secret_file>

希望这可以帮助。

于 2015-08-04T19:46:44.443 回答