Назад | Перейти на главную страницу

Salt: чтение файла свойств в базу данных Postgres

У меня есть сценарий Salt, который, помимо прочего, инициализирует базу данных Postgres. После инициализации базы данных я хочу прочитать некоторые свойства из файла и выполнить INSERT (в таблицу конфигурации) для каждой пары ключ / значение.

Я видел соли 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';

Если есть лучший способ, чем файл свойств для передачи ключей / значений, это тоже будет хорошо.

Если вам удастся зафиксировать эти свойства в столбце, будет очень легко перебирать каждую пару K / V с помощью Jinja.

Допустим, у вас есть следующие данные в столбце:

/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 и запускать запрос для всех из них.

Если свойства генерируются динамически, вы можете изучить их загрузку как данные столба через соль ext_pillar