SaltStack: перезапустить сервер (не только перезагрузить) при определенных изменениях - PullRequest
0 голосов
/ 19 сентября 2019

В большинстве случаев достаточно перезагрузить наш сервер PostgreSQL:

postgresql_service:
  service.running:
    - name: postgresql
    - enable: True
    - reload: True
    - watch:
      - file: postgresql.conf
      - file: pg_hba.conf
    - require:
      - pkg: postgresql
    - failhard: True

Но при некоторых конкретных изменениях перезагрузка недостаточна, требуется перезагрузка.

Например, если эта строка добавляется в postgresql.conf, требуется перезапуск:

shared_preload_libraries = 'pglogical'

Как я могу сказать Salt использовать перезапуск, если указанная выше строка добавляется в файл конфигурации?

Пример:

  1. Солевые прогоны и pglogical не было в конфигурации до и не после солевого прогона.Серверы должны быть перезагружены.
  2. Конфигурация изменяется и добавляется pglogical.Теперь сервер должен быть перезапущен
  3. Конфигурация изменилась, и «pglogical» уже находится в файле.Сервер должен быть перезагружен.

1 Ответ

0 голосов
/ 21 сентября 2019

это зависит от вашей архитектуры SLS.например, если в вашем столбе есть переменная, и у вас есть map.jinja, вы можете обработать это с помощью чего-то вроде нижеприведенного фрагмента.

{% from "postgresql/map.jinja" import pillars with context %}

postgresql_service:
  service.running:
    - name: postgresql
    - enable: True
{% if pillars.shared_preload_libraries=='pglogical' %}
    - reload: True
{% endif %}
    - watch:
      - file: postgresql.conf
      - file: pg_hba.conf
    - require:
      - pkg: postgresql
    - failhard: True
...