从 hiera 列表在 puppet 中创建文本文件

从 hiera 列表在 puppet 中创建文本文件

我在 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将数据插入文件中

相关内容