我有一个 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”块内的轻量级资源中指定的属性。