复制密码机密时,Kitchen 收敛失败并拒绝访问

Kitchen converge fails with Access Denied when copying password secret

我已经 运行 完成了基本的厨师教程,并设置了 WinServer2012 虚拟机,并使用 vagrant 成功地部署了我的厨房和基本的很棒的客户食谱。

但是,我在尝试为 sql 启用安全性时遇到了障碍。我已经按照教程创建了一个加密的 sql 密码文件以及 encrypted_data_bag_secret。当 运行 kitchen 收敛时,我进入 'Transferring files to MACHINE_NAME' 阶段,然后得到此访问被拒绝错误

>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: Failed to complete #converge action: [[WinRM::FS::Core::FileTransporter] Upload failed (exitcode: 1)
sc : Access to the path 'C:\Users\vagrant\AppData\Local\Temp\kitchen' is
denied.
At line:2 char:66
+ function Decode-Base64File($src, $dst) {folder (split-path $dst);sc -force
-Enco ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
    + CategoryInfo          : NotSpecified: (:) [Set-Content], UnauthorizedAcc
   essException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.Pow
   erShell.Commands.SetContentCommand

]
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

我已将问题追溯到 .kitchen.yml 文件中的这一行:

provisioner:
  encrypted_data_bag_secret_key_path: "../../.chef/encrypted_data_bag_secret"

我在具有权限的虚拟机中看不到任何问题,'C:\Users\vagrant\AppData\Local\Temp\kitchen' 存在并且流浪用户可以访问。它似乎与我 运行 的食谱无关,因为我可以将它们全部删除并仍然遇到相同的问题。我使用相同设置的同事遇到了同样的问题。

有没有人对可能发生的事情有任何想法或指示?我在 Windows 7,使用 VirtualBox 和 vagrant。我的 Kitchen.yml 文件在下面(尽管与教程几乎相同)

    ---
driver:
  name: vagrant
  network:
    - ["private_network", {ip: "192.168.35.35"}]

provisioner:
  name: chef_zero_scheduled_task

platforms:
  - name: windows-2012r2
    driver:
      customize:
        memory: 2048

suites:
  - name: default
    data_bags_path: "../../data_bags"
    run_list:
      - recipe[mock_emr::default]
    provisioner:
      encrypted_data_bag_secret_key_path: "../../.chef/encrypted_data_bag_secret"
    attributes:
      mock_emr:
        secret_file: 'C:/Users/vagrant/AppData/Local/Temp/kitchen/encrypted_data_bag_secret'
      sql_server:
        sysadmins: ['Administrator', 'vagrant']

这是一个已知错误 (https://learn.chef.io/manage-a-web-app/windows/configure-sql-server/)

将您的测试厨房更新到最新版本:

$ chef gem install appbundle-updater
$ appbundle-updater chefdk test-kitchen v1.7.3

再Converge一下,应该修好了