在 Puppet 中使用数组

在 Puppet 中使用数组

我有一个变量$IP = [ "91" , "92" ]$IPPriveeInstance = "10.248.33.$IP"

你猜对了,我想使用这个变量2次,但是当我打印时IPPriveeInstance,我得到的输出是10.248.33.9192。

答案1

Puppet 不会迭代数组项。下面的示例使用 inline_template 进行演示,但您应该使用自定义函数来执行此任务。

$ip      = ['91', '92']
$address = '10.248.33.'
$array   = inline_template("<%= ip.collect{|x| address+x.to_s} %>")

你也可以通过 Ruby DSL 来编写:http://projects.puppetlabs.com/projects/1/wiki/Ruby_Dsl

答案2

当您需要单独获取数组的各个部分时,您尝试一次引用整个数组。 试试这个:

$IPPriveeInstance = "10.248.33.$IP[0]"
$IPPriveeInstance = "10.248.33.$IP[1]"

数组中的第一个索引始终为零。

答案3

Puppet 7 支持迭代(当然也包括早期版本 5、6):

$ip = ['91', '92']

$ip.each |String $value| {
  $private = "10.248.33.$value"
  notice("IP: $private")
}

输出为:

$ puppet apply test.pp 
Notice: Scope(Class[main]): IP: 10.248.33.91
Notice: Scope(Class[main]): IP: 10.248.33.92

相关内容