puppet - шаблон ruby ​​- IP-адрес сгенерированного имени интерфейса - PullRequest
1 голос
/ 25 октября 2019

У меня есть следующий шаблон ruby ​​

interface <%= @interface %>
  state <%= @state %>
  priority <%= @priority %>

  virtual_router_id 1
  unicast_src_ip <%= @ipaddress_interface %>

по адресу unicast_src_ip. Я бы добавил IP-адрес @ interface-s. Имя интерфейса является динамическим. Так что, если я получаю eth0 в @interface, @ipadress_interface должен быть ip из eth0 (@ ipaddress_eth0). Если я заранее определил название NIC, как nic01. @ Ipadress_nic01 работает как шарм. Но, к сожалению, я знаю имя if только когда марионетка бежит

1 Ответ

2 голосов
/ 26 октября 2019

Вы можете получить доступ к динамически определяемым переменным, используя объект scope , доступный для скриптлетов ERB. Он принимает имя переменной, к которой вы хотите получить доступ, в виде строки, которая может быть вычислена во время выполнения любым из способов, которые предоставляет Ruby. Пример:

  unicast_src_ip <%= scope["ipaddress_#{@interface}"] %>
...