在我的厨师食谱中,我基本上是在解密几个数据包:
1. test.json
2. sample.json
解密后获得的数据将用于在我的厨房节点上创建文件。基本上,test.json
和sample.json
使用我拥有的密钥进行加密(test.json
是从test.txt
获得的,sample.json
是从sample.txt
获得的是一个明文文件),在一个名为gendatabags.rb
的脚本中创建这些文件并将它们放在各自的位置。请注意,gendatabags.rb
将secret key path
和input file path
作为输入参数。现在我想集成测试这个流程,我期待使用我生成的测试密钥。我想提供包含一些虚拟字符串的test.txt
和sample.txt
的测试版本。问题是,现在我想在我的食谱compile time
期间自动运行此脚本。有人可以提供一些如何实现这一目标的信息吗?
谢谢!
答案 0 :(得分: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
这将创建一个带有数据包名称的本地目录,并将加密的数据包项放在其中,其名称为&#34; id&#34; json文件的值。
-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>
希望这有帮助。