Puppet定义的资源和hiera json
试着把希拉和木偶一起使用。我想知道我怎样才能把这样的东西移到希拉身上:Puppet定义的资源和hiera json,puppet,hiera,Puppet,Hiera,试着把希拉和木偶一起使用。我想知道我怎样才能把这样的东西移到希拉身上: vagrant::box { 'dev.local': sshport => '2223', ip => '10.69.69.101' } vagrant::box { 'it.local': sshport => '2224', ip => '10.69.69.102' } 定
vagrant::box { 'dev.local':
sshport => '2223',
ip => '10.69.69.101'
}
vagrant::box { 'it.local':
sshport => '2224',
ip => '10.69.69.102'
}
定义:
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': }
$namevirtualhost = hiera("apache::namevirtualhost")
apache::namevirtualhost { $namevirtualhost : }
如何将“*:80”移动到hiera json文件?类似这样的东西(似乎不起作用):
同样的问题如果我多次包含定义,我如何将配置移动到hiera:
vagrant::box { 'dev.local':
sshport => '2223',
ip => '10.69.69.101'
}
vagrant::box { 'it.local':
sshport => '2224',
ip => '10.69.69.102'
}
只需在清单中使用hiera函数,因此在super_node.pp中:
apache::namevirtualhost { '*:80': }
$namevirtualhost = hiera("apache::namevirtualhost")
apache::namevirtualhost { $namevirtualhost : }
同样适用于您的箱子:
vagrant::box { 'dev.local':
sshport => hiera("dev_local_sshport"),
ip => hiera("dev_local_ip"),
}
首先,您应该通过键入
hiera "apache::namevirtualhost"
从命令行你测试了你的答案吗?:你建议的“apache::namevirtualhost{hiera(“apache::namevirtualhost”):}”给了我“错误:无法为环境产品解析:语法错误在“:”;应为“}”对不起,但实际上我无法检查语法,可能puppet不喜欢
资源{foo():}
语法。但是hiera调用是打印出来的,并且将像命令行HieraVariableName
那样工作。