盐:将属性文件读入Postgres数据库

我有一个Salt脚本,除其他外,初始化一个Postgres数据库。 在初始化数据库之后,我想从文件中读取一些属性,并为每个键/值对执行INSERT (在configuration表中)。

我见过Salt的psql_query ,它应该解决部分问题。 我的问题是,如何迭代我的属性文件中的对,然后对每个条目进行查询?

所以,文件

 key1 = value1 key2 = other value 

应该翻译成盐

 my_config_key1: - postgres.psql_query: query: UPDATE configuration SET value = 'value1' WHERE key = 'key1'; my_config_key2: - postgres.psql_query: query: UPDATE configuration SET value = 'other value' WHERE key = 'key2'; 

如果有一个比传递键/值的属性文件更好的方法,那也可以。

如果你能够将这些属性检入到柱子中,那么在Jinja上迭代每个K / V对都是非常容易的。

假设你在你的支柱数据中有这个:

/srv/pillar/pg-properties.sls:

 pg_properties: key1: value1 key2: value2 

和状态/srv/salt/pg-populate.sls:

 {% for key, value in pillar.get('pg_properties', {}).items() %} my_config_{{ key }}: - postgres.psql_query: query: UPDATE configuration SET value = '{{ value }}' WHERE key = '{{ key }}'; {% endfor %} 

Salt将迭代每个keyX条目并为所有这些条目运行查询。

如果这些属性是dynamic生成的,则可以通过salt的ext_pillar将它们加载为支柱数据