У меня есть хэш со списком в иерархии. Я использую это для автоматического создания баз данных в СУБД через create_resources
dbs:
- dbname: something
- dbname: or
- dbname: other
. Я хотел бы использовать этот же список для автоматического создания простого текстового файла с одной записью в строке для использования нашим сценарием резервного копирования. Этот список всегда будет иметь произвольное количество записей> = 1.
Полученный файл должен выглядеть так:
something
or
other
Как лучше всего это сделать? Мне ничего не удалось найти.
Сначала вам нужно перебрать ваш массив, затем вам нужно взять значение каждого хэша, потому что у вас есть массив с хешем:
sqldbs = lookup('dbs')
each($sqldbs) |$db| {
notice($db)
}
root@6bb0b3e9ec6c:/# puppet apply hello.pp -vvv
Notice: Scope(Class[main]): {dbname1 => something}
Notice: Scope(Class[main]): {dbname2 => or}
Notice: Scope(Class[main]): {dbname2 => other}
Как вы можете заметить, у вас есть 3 элемента , теперь вы можете взять элемент каждого хэша
Теперь с помощью небольшой строчки кода.
$sqldbs = lookup('dbs')
each($sqldbs) |$db| {
notice($db.values.join(','))
}
root@6bb0b3e9ec6c:/# puppet apply hello.pp -vvv
Notice: Scope(Class[main]): something
Notice: Scope(Class[main]): or
Notice: Scope(Class[main]): other
Notice: Compiled catalog for 6bb0b3e9ec6c.cc.cec.eu.int in environment production in 0.04 seconds
Теперь вы можете использовать file_line
для вставки данных в файл