1

试图将 hiera 与 puppet 一起使用。我想知道我怎么能把这样的东西移到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'
  } 
4

1 回答 1

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"

从命令行

于 2014-02-10T12:24:19.023 回答