我有一个LWRP,其提供者操作如下所示。我想将环境变量传递给资源保护程序:
action :create do
powershell_script 'create file' do
environment({'fileName' => new_resource.fileName})
code <<-EOH
New-Item $env:fileName
EOH
guard_interpreter :powershell_script
not_if '(Test-Path $env:fileName)'
end
在上面的示例中,我要做的是创建一个新文件(如果尚未存在)。执行此操作时,每次都会创建新文件。我希望第二次围绕守卫执行并且不会重新创建资源。我认为发生的事情是我无法在守卫中使用环境变量,就像我在代码块中一样。
请注意,我的现实生活中的问题要比这复杂得多,而且我不仅仅是在寻找一种创建文件的方法,如果它不存在的话。我需要知道如何在'not-if'块中使用轻量级资源中指定的属性。
答案 0 :(得分:0)
它被埋葬了,但它在documentation here。就这样做:
action :create do
my_environment = 'fileName' => new_resource.fileName
powershell_script 'create file' do
environment my_environment
code <<-EOH
New-Item $env:fileName
EOH
guard_interpreter :powershell_script
not_if '(Test-Path $env:fileName)', :environment => my_environment
end
end