Ansible error handling with failed_when and ignore_errors

Иногда нужно в Ansible регистрировать переменную в таске, по которой потом можно делать условие и запускать ту или иную таску. Например, есть task1 при выполнении которой мы будем регистрировать переменную и нужно запускать(или не запускать) task2, если переменная у нас, скажем, равна 1.

Пример, берем плейбук в котором первая таска запускает clamscan  и если вирусов не обнаружено, то запускается некая таска и плейбук продолжается, если же малварь или вирус есть, то плейбук заканчивается и вторая таска пропускается.

Если в первой таске rc == 1 (return code вернул 1), то плейбук будет фейлится, а нам это не нужно и тогда берем опцию “ignore_errors : True”

В итоге получаем, что вторая таска запускается только в случае, если return code == 0 то есть успешное выполнение шелл команды из первой таски. Если просто нужно фейлить плейбук с первой таски, если RC == 1 , то делается еще проще

Добавляем опцию failed_when  и указываем условие.

Все.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *