是否可以在ruby_block中使用powershell_script? 我想在收敛阶段而不是编译阶段运行powershell脚本。 目前的代码不起作用:
ruby_block 'ruby block so that code is run during convergence phase and not compilation phase' do
block do
buildNumber = "123"
powershell_script 'run powershell script' do
environment ({'buildNumber' => buildNumber})
code "path/to/script/script.ps1"
end
end
action :run
end
我知道你可以在ruby_block之外的powershell_script上使用一个guard来使它在收敛期间运行但是我需要在ruby块中定义的局部变量buildNumber。
答案 0 :(得分:0)
以下代码对我有用:
x = Chef::Resource::PowershellScript.new('unzipper script',run_context)
x.code 'D:/git/chef/cookbooks/java-8-upgrade/unzipper.ps1'
x.environment ({'buildNumber' => buildNumber})
x.run_action :run
答案 1 :(得分:0)
在简单的情况下,您可以使用powershell_out
辅助方法。对于更复杂的情况,请创建自定义资源并使用普通资源。不要使用手动资源调用(Chef::Resource::Foo.new
,因为我们明确不支持这一点,并且知道它会破坏事物。)