На моем сервере есть пара неизменяемых файлов, например, /etc/passwd
.Это означает, что каждый раз, когда пользователь добавляется, редактируется или удаляется в системе (вручную, с помощью dpkg или любым другим способом), нам нужно запускать chattr -i /etc/passwd
и chattr +i /etc/passwd
до и после рассматриваемой команды.Проблема в том, что мы не всегда заранее знаем, что это произойдет.
Есть ли способ в ansible спланировать следующее в пьесе или роли:
- выполнить задание
- проверить, есть ли ошибка, например
operation not permitted: <filename>
chattr -i <filename>
- повторить задачу
chattr +i <filename>
(даже если задача выдала другую ошибкуна этот раз)
В более общих чертах: возможно ли обернуть ответную задачу в две другие задачи?
Или, если я добавлю chattr +i
в обработчик,Можно ли где-нибудь определить chattr -i
и запустить его при необходимости?