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...
しかし、エラーをスローします
ArgumentError
シェフのリソースを宣言するときは、名前を指定する必要があります
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 はデータ バッグの場所を見つけられないようです。私はどこかで何かを逃していますか?