我正在使用Chef Kitchen做一个POC。我们有一个PowerShell脚本进入网络路径,根据日期[安装屏蔽安装程序]对构建进行排序,复制到文件夹中的VM。
当我使用Power Shell手动在VM内部运行时,此脚本可以正常工作。当我使用Chef Kitchen运行时,我没有收到任何错误,配方运行但只有第一行。我可以在VM中看到名为Build的文件夹。
我做了一个实验并添加了第二行来创建另一个文件夹,它工作正常。所以问题是我用来复制和粘贴构建的逻辑似乎不适用于Chef。
第一行创建一个新文件夹,第二行和第三行设置源和目标路径。第四行将构建从网络路径[按日期排序以获取最新]复制到VM。最后一个是重命名。
还有一种有效的方法可以使用Chef将文件从网络路径[按日期排序]复制到VM吗?
powershell_script 'CopyBuild' do
code <<-EOH
New-Item -ItemType directory -Path C:\Build
$source = gci \\BuildPath\Build | ? { $_.PSIsContainer } | sort CreationTime -Desc | select -f 1
$destination = "C:\Build"
Copy-Item "\\BuildPath\Build\$source\*" $destination
Get-ChildItem $destination -r -i "*app1*.exe" | Rename-Item -NewName {"Test.exe"}
EOH
end
我也试过这个,调用PS脚本:
cookbook_file 'getbuild.ps1' do
mode '0755'
end
答案 0 :(得分:0)
这看起来像是一个Windows远程问题,你的powershell需要正确的配置才能访问网络共享。
要验证是否是这种情况:替换UNC路径并只复制本地目录 - 如果这样可以进一步挖掘以设置Windows远程处理的要求,请参阅以下链接以获得进一步的帮助:
总结这些链接:您可以在PS中安排一个本地任务来执行此操作,或设置credssp。