1

有没有办法使用 hiera 在一些清单中定义的变量?

这就是我尝试的方式:

清单文件

if $::ipaddress_bond0 {
  $primary_interface = 'bond0'
  notify{"$primary_interface":}
}
else {
  $primary_interface = 'eth0'
  notify{"$primary_interface":}
}

hiera.yaml

some_config:
  server:
    foo:
      bar: "%{::primary_interface}"
4

1 回答 1

3

是的,这是可能的。看例子:

测试.pp

class nodes::test
{
  $value1 = 'abc'
  $value2 = hiera('test::value2')
  $value3 = hiera('test::value3')

  notify{ " v1 ${value1}": }
  notify{ " v2 ${value2}": }
  notify{ " v3 ${value3}": }
}

include nodes::test

测试.yaml

test::value2: "%{value1}"
test::value3: "%{value4}"

运行测试:

puppet apply  test.pp 

注意:v1 abc

注意:v2 abc

注意:v3

请记住,在 hiera 中使用 puppet 变量是一种非常糟糕的做法

于 2015-07-09T20:03:45.170 回答