Chef-client 不能在 Workstation 上工作,但可以直接在服务器上工作

Chef-client does not work from Workstation but does work directly on the server

我有一份厨师食谱,运行 是 Microsoft SQL 服务器的巧克力安装。从我的 workbench 当我 运行

knife winrm [IP] 'chef-client -o "recipe[NetDevMachine::default]"' -m -x 'domain\myuser'

在一个节点上失败并出现错误: 532459699 或有时 2022834173 或 2057043966

但是,如果我以同一用户身份在本地登录 VM 运行

chef-client -o "recipe[NetDevMachine::default]"

有效。有谁知道 运行 在本地使用 chef-client 和从 workbench 远程使用 运行 之间有什么区别? Chef-client 在这里做了什么不同的事情?两者都从同一个 chef-server 存储库中提取食谱。

其他详细信息

食谱内容:

powershell_script "choco install MicrosoftSQLServer2014" do
    code <<-EOH
    choco install MicrosoftSQLServer2014
  EOH
end

错误:

[ERROR] Running C:\Users\myuser\AppData\Local\Temp\MicrosoftSQLServer2014\setup.exe with 
/QUIET /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /INSTANCENAME=MSSQLSERVER /FEATURES=SQL,TOOLS,LOCALDB 
/SQLSVCACCOUNT="NT AUTHORITY\Network Service" /SQLSYSADMINACCOUNTS=BUILTIN\ADMINISTRATORS 
/SKIPRULES=REBOOTREQUIREDCHECK UIMODE=AUTOADVANCE  was not successful. 
Exit code was '-532459699'.

编辑 - 我能看到的唯一区别是前景中有一个 运行s 而另一个没有。所以编译 chef-script 的位置是 /temp/2 失败的 运行。我不知道是否有办法强制厨师在前台 运行 或者这是否有帮助。

谢谢

我从来没有深究这一点,仍然不明白 运行 远程使用 knife 的 Chef 客户端与直接在 VM 上的 运行 Chef 客户端有何不同。可能与远程发送命令时凭证或权限的处理有关。

但我确实发现删除 chocolatey 并将其替换为 chef powershell 资源中的命令行静默安装允许我安装 MSSQL。