我正在尝试使用 Vagrant 和 Chef 来测试加密的数据包。我使用创建了一个加密数据包
knife solo data bag create test test_service --data-bag-path ../../data_bags/ --secret-file ~/.chef/encrypted_data_bag_secret
并验证项目已创建。
在我的 Vagrant 文件中添加了 data_bag 和加密密钥路径
config.vm.provision :chef_solo do |chef|
chef.log_level = :debug
chef.data_bags_path = "../../data_bags"
chef.encrypted_data_bag_secret_key_path = '~/.chef/encrypted_data_bag_secret'
配方包含
secret_key = Chef::EncryptedDataBagItem.load_secret("C:\\tmp\\vagrant-chef-3\\encrypted_data_bag_secret_key")
usr_creds = chef::EncryptedDataBagItem.load("test","test_service", secret_key)
当 Vagrant 运行时,它会加载加密的密钥
==> default: Running provisioner: chef_solo...
Uploading chef encrypted data bag secret key...
但抛出错误
参数错误
声明厨师资源时必须提供名称
在 Vagrant 框中,我可以看到 Vagrant 创建了 2 个目录
C:\tmp\vagrant-chef-3\chef-solo-1\cookbooks
C:\tmp\vagrant-chef-3\chef-solo-2\data_bags
在 Vagrant 框的 solo.rb 中,C:\tmp\vagrant-chef-3\solo.rb
有一个食谱和加密密钥的设置,但没有数据包的位置
经过反复试验,Chef 似乎无法找到数据包的位置。我在某处遗漏了什么吗?