2014-10-29 2 views
0

У меня есть LWRP с действием поставщика, который выглядит так. Я хочу передать переменные окружения охранника ресурса:передать переменные среды в ресурс gaurd в powershell_script в 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

Он похоронен, но находится в 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 
Смежные вопросы