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

Соль: file.replace: ignore_if_missing игнорируется?

Я хочу включить ведение журнала сервера fstp следующим образом: https://serverfault.com/a/74234/90324

Но соль ничего не делает. Я свел его к этому:

enable_logging_of_sftp:
  file.replace:
    - name: /etc/ssh/sshd_config
    - pattern: Sxxxxubsystem
    - repl: Syyyubsystem
    - ignore_if_missing: False

Тем не менее, соль говорит:

      ID: enable_logging_of_sftp
Function: file.replace
    Name: /etc/ssh/sshd_config
  Result: True
 Comment: No changes needed to be made
 Started: 11:09:24.356010
Duration: 15.231 ms
 Changes:   

Я этого не понимаю. Конечно Sxxxxubsystem и Syyyubsystem не в /etc/ssh/sshd_config.

Поскольку ignore_if_missing отсутствует - False (в любом случае это значение по умолчанию), я думаю, что должен получить сообщение об ошибке.

Почему нет сообщения об ошибке, если pattern и repl нет в файле?

Выше возник вопрос, так как я неправильно прочитал документы. Вот следующий вопрос, который касается моего варианта использования: Salt: поднять ошибку, если file.replace не нашел ничего для замены

Если ваш файл присутствует, вы никогда не получите сообщение об ошибке, даже если шаблон отсутствует в файле.

Цитирование этой страницы https://docs.saltstack.com/en/latest/ref/states/all/salt.states.file.html#salt.states.file.replace

ignore_if_missing: ложь

Новое в версии 2016.3.4.

Контролирует, что делать, если файл отсутствует. Если установлено значение False, в состоянии будет отображаться ошибка, вызванная модулем выполнения. Если установлено значение True, состояние просто не будет сообщать об изменениях.

Если вы хотите обнаружить, когда ваш шаблон отсутствует, я не знаю, как вы можете это сделать. Но вы можете посмотреть на append_if_not_found параметр для вставки данных, даже если шаблон отсутствует.