我试图使用Vagrant和Chef来测试加密数据包。我使用
创建了一个加密数据包 knife solo data bag create test test_service --data-bag-path ../../data_bags/ --secret-file ~/.chef/encrypted_data_bag_secret
并验证了项目的创建。
添加了data_bag并加密了我的Vagrant文件的密钥路径
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框C:\tmp\vagrant-chef-3\solo.rb
上的solo.rb中,有一个烹饪书和加密密钥的设置,但没有数据包的位置
通过一些试验和错误,看起来Chef无法找到数据包的位置。我错过了什么地方吗?