Может, я слепой, но я не мог найти способ позволить salt-ssh
вызов не пройден, если file.replace не заменил ни одной строчки.
Если шаблон, который я предоставил, не совпадал, я хочу, чтобы меня заметили.
Пример:
enable_foo:
file.replace:
- name: /etc/foo/foo.config
- pattern: DisallowBar
- repl: AllowBarUntilMidnight
Saltstack - это инструмент управления конфигурацией, поэтому при использовании состояний вы определяете, что вы хотите, вы обычно не беспокоитесь о том, чтобы получать предупреждения, когда что-то сделано или нет.
Итак, в вашем примере я бы сказал: «вы хотите заменить шаблон X строкой Y», и все. Saltstack заменяет шаблон, если он существует, и ничего не делает, если нет.
Более того, в управлении конфигурацией обычно требуется, чтобы состояния были «идемпотентными». Это означает, что последовательные казни должны давать одинаковый результат. Выполняете ли вы свое состояние один раз или 1000 раз должны быть одинаковыми. Я не уверен, что то, что вы хотите сделать, действительно обеспечивается saltstack.
Обновить: конечно, вы можете делать то, что хотите, с солью, но вам, возможно, придется разделить на два состояния: одно для проверки текущего состояния и в конечном итоге сбой (проверьте failhard https://docs.saltstack.com/en/latest/ref/states/failhard.html) и еще один для замены