Условное состояние соли

Solomon Gifford спросил: 14 ноября 2017 в 06:54 в: salt-stack

У меня есть сценарий, в котором мне нужно выполнить действие, если другой сервис уже запущен. В частности, я хочу установить мониторинг snmp, если, например, mysql уже запущен.

Я знаю, что "правильный" способ сделать это - установить mysql и его мониторинг, основанные на данных столба, данных зерна или какой-либо другой топовой фильтрации файлов. Однако в этом сценарии mysql устанавливается за пределами управления конфигурацией (например, у MSP есть клиенты, которые устанавливают mysql, но затем полагаются на хост-провайдера для настройки мониторинга).

Каковы лучшие практики в этой ситуации?

Некоторые решения, о которых я подумал:

  1. Создайте пользовательское зерно, в котором перечислены запущенные службы.
  2. Используйте if / only if (и файл карты для различных дистрибутивов ОС)
  3. Маяк (указывающий, что служба запущена) и реактор (для развертывания)
  4. Вызов модуля исполнения service.status в jinja из файла состояния, например:

{% set mysqlrunning = salt['service.status'](mysql_service) %} {% if mysqlrunning %} <rest of state file> {% endif %}

While # 4 кажется достаточно простым, я боюсь, что это будет медленно и использовать много системных ресурсов при большом развертывании (1000 серверов).

Каковы лучшие практики в этой ситуации?


0 ответов