Я застрял на следующем марионеточном коде из дней, не могли бы вы дать мне руку?
В hiera у меня есть следующая структура:
my_list::servers:
server1.subnet.env.com:
id: 0
server2.subnet.env.com:
id: 1
server3.subnet.env.com:
id: 2
server4.subnet.env.com:
id: 3
Где различные server1..n
(n => 2) - полное доменное имя серверов в конкретной среде.Идентификатор всегда в порядке, но начиная с 0.
Мне нужно создать строку, содержащую список строк через запятую, как broker-${id}-check
, где идентификатор отличается от полного доменного имени сервера, на котором яя запускаю puppet, поэтому, например, если я запускаю скрипт на server2.subnet.env.com
, строка должна быть broker-0-check,broker-2-check,broker-3-check
Если я использую server1.subnet.env.com
, это будет broker-1-check,broker-2-check,broker-3-check
и т. Д.
Мое последнее предположение:
$servers_list = hiera('my_list::servers', {"${::fqdn}" => {'id' => 0 } })
$list_broker=''
$servers_list.each |$key, $value| {
if $key != $::fqdn {
$list_broker="${list_broker},broker-${value['id']}-check"
}
}
notify {"******* ${list_broker}": }
, но list_broker
все еще пуст, и тогда я будунужно исправить начальную запятую.
Есть ли лучший способ сделать это?
Я использую Puppet 4.