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

Подтвердите изменения конфигурации с помощью соли

Предыстория: недавно я обнаружил проблему на наших серверах, из-за которой zookeeper не запускался на одном из них. Это было вызвано тем, что файл myid был пуст (требуется номер). Соль не исправила. Оказывается, проблема была вызвана недавним изменением имени хоста. Я исправил файл sls, но любая такая настройка может снова привести к его поломке.

Итак, мой вопрос: могу ли я использовать соль для проверки правильности применения определенных изменений? В этом случае я мог бы проверить размер файла или убедиться, что его содержимое содержит одно число. В идеале это должно было бы выполняться как часть выполнения состояния, но если есть другой способ, я бы хотел это услышать.

Чтобы быть конкретным, я не собираюсь проверять или проверять сами файл состояния. Я просто хочу убедиться, что конечные результаты в какой-то степени верны. Например. файл содержит одно число и не является пустым.

Идти вместе с Ответ Роальда Нефса, ты можешь использовать module.run в состоянии для выполнения модуля в состоянии. Итак, в моем случае я сделал следующее:

myid_file_test:
    module.run:
        name: file.search
        path: /path/to/myid
        pattern: '\d'

Если шаблон не соответствует, он сообщит об ошибке, что именно то, что я хочу.

С salt.module.file Модуль вы сможете управлять информацией об обычных файлах, каталогах и специальных файлах миньона, устанавливать / читать пользователя, группу, режим и данные.

Эти модули включают search() функция, которая позволяет вам искать вхождения шаблона в файле.

salt '*' file.search /path/to/the/file pattern='='

Шаблон - это регулярное выражение, которое должно быть сопоставлено с помощью Python search().

Вы можете использовать diskusage() функция для рекурсивного вычисления дискового использования пути и возврата его в байтах:

salt '*' file.diskusage /path/to/the/file