создать текстовый файл в марионетке из списка hiera

У меня есть хэш со списком в иерархии. Я использую это для автоматического создания баз данных в СУБД через create_resources

dbs:
  - dbname: something
  - dbname: or
  - dbname: other

. Я хотел бы использовать этот же список для автоматического создания простого текстового файла с одной записью в строке для использования нашим сценарием резервного копирования. Этот список всегда будет иметь произвольное количество записей> = 1.

Полученный файл должен выглядеть так:

something
or
other

Как лучше всего это сделать? Мне ничего не удалось найти.

0
задан 7 December 2018 в 16:04
1 ответ

Сначала вам нужно перебрать ваш массив, затем вам нужно взять значение каждого хэша, потому что у вас есть массив с хешем:

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 для вставки данных в файл

1
ответ дан 4 December 2019 в 15:48

Теги

Похожие вопросы