Как запустить блок ruby ​​в рецепте и передать результат в шаблон - PullRequest
0 голосов
/ 05 ноября 2019

Вы все помогли мне на днях с помощью некоторого кода ruby, чтобы проанализировать строку и изменить ее ( Как проверить, что последний символ в строке - это число ). Теперь дело в том, как мне вставить это в рецепт шеф-повара, чтобы заполнить его шаблоном?

Блок ruby ​​дает мне нужный мне результат, по крайней мере, когда я тестирую в автономном ruby. Из поиска в Интернете, казалось, что один из способов сделать это был с run_state []. К сожалению, он не заполняет шаблон.

По сути, в рецепте у меня есть следующий блок кода:

ruby_block "new db home" do
  block do
    if node['oracledb']['oraclehome']['db']['home'].split('/')[-1].include?('dbhome_')
      db_home = node['oracledb']['oraclehome']['db']['home']
      digits = db_home[/\d+$/]
      db_home[/\d+$/] = digits.to_i.next.to_s if digits
    else
      db_home = db_home + "/dbhome_1"
    end
    node.run_state['new_db_home'] = db_home
  end
  not_if { node['oracledb']['oraclehome']['db']['version'] == '11.2.0.4' }
end

И затем в шаблоне я пытаюсь ссылатьсяэто как:

db_home=<% node.run_state['new_db_home'] %>
...