我正在用Puppet (3.7)编写一个条件语句,测试主机名是否在一个已定义的主机名数组中。如果为true,则该类继续运行,如果不运行,则使用fail函数退出。
if $::hostname in $approved_hosts != str2bool("true") {
fail("This module is for approved reposync hosts only")其中$approved_hosts是一个主机名数组。此方法不起作用,但如果我将$approved_hosts更改为“hostname1”,“hostname2”,则会起作用:
if $::hostname in ['hostname1', 'hostname2'] != str2bool("true") {
fail("This module is for approved reposync hosts only")有人能解释为什么当我将主机名数组转换为变量时,条件会失败,但不起作用?
谢谢:)
发布于 2014-12-25 08:24:38
调整您的代码(未能通知),在test.pp文件中进行测试,它运行良好。
$approved_hosts = ['hostname1', 'hostname2']
if $::hostname in $approved_hosts != str2bool("true")
{ notify {"This module is for approved reposync hosts only":} }因此,这意味着您的代码在数组定义上没有问题,它应该是其他的。
https://stackoverflow.com/questions/27644029
复制相似问题