puppet - ruby 模板 - 来自生成的接口名称的 ip 地址

puppet - ruby template - ip address from a generated interface name

我有以下 ruby 模板

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

  virtual_router_id 1
  unicast_src_ip <%= @ipaddress_interface %>

在unicast_src_ip 我会添加@interface-s 的IP 地址。 接口名称是动态的。 因此,如果我在@interface 中获取 eth0,则 @ipadress_interface 应该是 eth0 (@ipaddress_eth0) 的 ip。 如果我预定义 NIC 的名称,如 nic01。 @ipadress_nic01 就像一个魅力。但不幸的是,我只在木偶运行时才知道 if 名称

您可以使用 the scope object 暴露给 ERB scriptlet 来访问动态确定的变量。它将您要访问的变量的名称作为字符串,可以在运行时以 Ruby 提供的任何方式计算。示例:

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