Как использовать блок Ruby для назначения переменных в рецепте шеф-повара

Я пытаюсь на ходу выполнить логику Ruby по рецепту шеф-повара и считаю, что лучший способ добиться этого - с помощью блока.

У меня возникают трудности при переносе переменных, назначенных внутри блока, в основной код рецепта шеф-повара. Вот что я попробовал:

ruby_block "Create list" do
  block do
    to_use ||= []
    node['hosts'].each do |host|
      system( "#{path}/command --all" \
              " | awk '{print $2; print $3}'" \
              " | grep #{host} > /dev/null" )
      unless $? == 0
        to_use << host
      end
    end
    node['hosts'] = to_use.join(',')
  end
  action :create
end

execute "Enable on hosts" do
  command "#{path}/command --enable -N #{node['hosts']}"
end

Вместо того, чтобы пытаться переназначить атрибут chef на лету, я также попытался создать новые переменные в блоке, но все еще не могу найти способ получить к ним доступ вexecute заявление.

Первоначально я использовал класс и вызывал методы, однако он был скомпилирован до рецепта, и мне действительно нужно, чтобы логика выполнялась во время выполнения, во время рецепта.

Ответы на вопрос(1)

Ваш ответ на вопрос