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

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

我有一个 Salt 脚本,其中之一就是初始化 Postgres 数据库。初始化数据库后,我想从文件中读取一些属性,并INSERT针对每个键/值对执行(进入配置表)。

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

因此,文件

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';

如果有比属性文件更好的方法来传递键/值,那也很好。

答案1

如果您可以将这些属性检查到支柱中,那么使用 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 条目并对所有条目运行查询。

如果属性是动态生成的,您可以研究通过 salt 将它们作为支柱数据加载外部支柱

相关内容