我有一个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将它们加载为支柱数据