简体   繁体   中英

Puppet - How to use variables defined in manifests with hiera

is there a way to use a variable defined in some manifest with hiera?

This is how I tried it:

manifest.pp

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}"

Yes it is possible . Look at the example:

test.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

test.yaml

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

run test:

puppet apply  test.pp 

Notice: v1 abc

Notice: v2 abc

Notice: v3

Keep in mind that using puppet variables in hiera is a really bad practice .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM