我在 hiera 中有一个包含列表的哈希。我使用它通过 create_resources 自动在 RDBMS 中创建数据库
dbs:
- dbname: something
- dbname: or
- dbname: other
我想使用同一列表自动创建一个纯文本文件,每行一个条目,供我们的备份脚本使用。此列表将始终存在,条目数任意 >=1。
生成的文件应该如下所示
something
or
other
最好的方法是什么?我什么也没找到。
答案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
将数据插入文件中