Ansible
Теория: Регистрация результата
Представьте себе ситуацию, когда результат вывода одной таски, нужно использовать в другой. Например, добавить в cron список домашних директорий пользователя. Для выполнения такой операции в Ansible существует механизм, который называется регистрация результата:
С помощью ключа register, можно записать результат работы модуля shell в переменную с произвольным именем, например, home_dirs. И использовать эту переменную в другой задаче, при вызове модуля cron.
Распечатаем содержимое переменной home_dirs. Для этого нам подойдет модуль debug, который позволяет делать вывод значений:
home_dirs - это хеш, внутри которого содержится информация о таске: выполнена ли задача, сколько времени заняло ее выполнение, какой модуль использовался и, самое главное, содержимое stderr и stdout. Причем stdout представлен в двух форматах: в виде строки и списка. Списочный формат позволяет использовать результат в цикле, что мы и сделали в первоначальном плейбуке.
Еще один пример:
Здесь модуль command вызывает функцию false. Результат работы модуля регистрируется в переменную result. Строго говоря, функция возвращает не нулевой статус, поэтому плейбук должен завершиться с ошибкой и не выполняться дальше. На самом деле так и происходит. Но вывод ошибки можно подавить с помощью ignore_errors. Этот ключ позволяет продолжить выполнение плейбука вне зависимости от успешности выполнения команды.
Дальше идет два варианта развития событий. Нужная команда выполняется по условию. И поскольку result.failed: true, то выполнится только последняя команда.






