我想知道是否有办法从powershell_script
资源中定义的powershell脚本返回变量值?
我的powershell
资源如下所示:
powershell_script "Test Script" do
code <<-EOH
Write-Host "Hello World!"
return "test"
EOH
end
我想根据条件使用脚本中返回的值test
在其他资源中使用。
由于
答案 0 :(得分:5)
Ohai!
我认为您确实想要使用PowershellOut
Mixin found here in the Powershell cookbook。
Chef资源很少返回值,但这就是重量级资源的用途!
如果你有powershell食谱,你可以这样做:
include Chef::Mixin::PowershellOut
cmd = powershell_out!('command')
cmd.stdout #=> ...
cmd.stderr #=> ...
答案 1 :(得分:0)
我们实际上遇到了这个问题并通过编写我们自己的Mixlib来解决它,从PowerShell脚本中获取退出代码。例如:
# get the result object (and exit code) from the code execution:
result = Mixlibrary::Core::Shell.windows_script_out(:powershell, mycode)
exit_status = result.exitstatus
@carpNick计划在本周尽快开源......目前它只处理PowerShell,但我们计划实施对其他类型的支持(bash,win模块等) - 应该相当容易添加对其他人的支持。
我们目前正在内部使用它,效果很好。我确信厨师一旦得到它就会想要检查尼克的优秀代码。我们只是在等法律告诉我们使用什么开源许可证。
向尼克询问更多详情... @carpnick | https://github.com/carpnick