Puppet定义了资源和hiera json

时间:2014-02-07 22:06:19

标签: puppet hiera

尝试与木偶一起使用hiera。而且我想知道如何将这样的东西移到hiera:

定义:

define apache::namevirtualhost {
  $addr_port = $name

  # Template uses: $addr_port
  concat::fragment { "NameVirtualHost ${addr_port}":
    target  => $apache::ports_file,
    content => template('apache/namevirtualhost.erb'),
  }
}

然后在我的super_node.pp中:

apache::namevirtualhost { '*:80': }

我怎么能将'*:80'移动到hiera json文件?像这样的东西(似乎不起作用):

{
    "apache::namevirtualhost" : "*:80"
}

同样的问题,如果我多次包含定义,我怎么能将配置移动到hiera:

  vagrant::box { 'dev.local':
    sshport       => '2223',
    ip            => '10.69.69.101'
  } 

  vagrant::box { 'it.local':
    sshport       => '2224',
    ip            => '10.69.69.102'
  } 

1 个答案:

答案 0 :(得分:0)

只需在清单中使用hiera函数,因此在super_node.pp中使用

$namevirtualhost = hiera("apache::namevirtualhost")
apache::namevirtualhost { $namevirtualhost : }

你的盒子也一样:

  vagrant::box { 'dev.local':
    sshport       => hiera("dev_local_sshport"),
    ip            => hiera("dev_local_ip"),
  }

首先,您应该通过键入

确保正确配置hiera数据库
hiera "apache::namevirtualhost"

来自command_line