Назад | Перейти на главную страницу

Работа с массивами в марионетке

У меня есть переменная $IP = [ "91" , "92" ]и $IPPriveeInstance = "10.248.33.$IP".

Как вы уже догадались, я хочу использовать эту переменную 2 раза, но когда я печатаю IPPriveeInstance, Я получил результат как 10.248.33.9192.

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

Вы пытаетесь ссылаться на весь массив сразу, когда хотите, чтобы отдельные части массивов были отдельно. Попробуй это:

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

Первый индекс в массиве всегда равен нулю.