Словосочетание «поток заданий» говорит само за себя. Эта функция Ansible Tower появилась в версии 3.1 и позволяет задать последовательность операций в виде комбинации шаблонов заданий (job templates), а также синхронизаций (syncs) проектов и inventory, а затем выполнять эту последовательность как одно целое. Иными словами, потоки заданий помогают упорядочить плейбуки (playbooks) и шаблоны заданий по отдельным группам.
Рассмотрим, что такое шаблоны потоков заданий, в чем их польза, как их создавать и редактировать, а также ряд других полезных моментов по их использованию.
Они помогают формализовать и упорядочить взаимодействие команд, например, сетевиков и разработчиков, предоставив им доступ к соответствующим потокам заданий. При этом участникам даже не надо знать состав и порядок выполнения заданий потока, поскольку все это уже настроено тем, кто его создал. Увязывая задания различных типов и унифицируя проекты, потоки заданий избавляют представителей одной команды от необходимости в точности понимать, что делает другая команда, и наоборот.
Кроме того, потоки заданий позволяют увязать абсолютно любое количество плейбуков в алгоритмическую цепочку любой сложности, где выбор следующего для выполнения задания зависит от успеха или неудачи выполнения предыдущего.
Щелкните Templates в главном меню Ansible Tower:
Затем щелкните Add, и выберите Workflow Template:
Появится экран, где можно указать имя и сохранить шаблон потока заданий:
После того, как закончите, перейдите в Edit Workflow:
Появится экран, где можно добавлять шаблоны заданий и задавать условия их запуска (при ошибке или при успешном выполнении, либо безусловно):
Условия запуска задаются в нижней части панели справа:
Потоки заданий Ansible могут быть как предельно простыми…
… так и очень сложным:
После того, как вы настроите и сохраните шаблон потока заданий, его можно запускать. Для этого достаточно щелкнуть значок с ракетой справа от имени шаблона:
Их можно запускать по расписанию. Для этого щелкните значок календаря рядом с названием шаблона потока заданий:
… и настройте параметры его автозапуска:
Чтобы скопировать шаблон потока заданий, щелкните значок, помеченный стрелкой на скрине ниже:
Однако, имейте в виду, что при копировании потока заданий его разрешения, уведомления и расписания не копируются.
Если вам нужно задать дополнительные переменные для плейбуков, задействованных в шаблоне потока заданий, и/или организовать ввод информации от пользователя, то это можно сделать с помощью опросов. Чтобы создать Опрос, выберите шаблон потока заданий и щелкните Add Survey:
Появится экран опроса, где можно задать вопросы и указать типы ответов:
Уведомления позволяют отслеживать выполнение потоков заданий. Просто выберите поток заданий, для которого хотите настроить уведомления, и щелкните Notifications:
Обратите внимание, что в списке уведомлений уже есть кое-какие записи. Поэтому на отрывшемся экране надо выбрать то, что вам нужно, например, на скрине мы выбрали уведомление Workflow-Specific Notification, для которого задана активации как при успешном, так и при неудачном запуске:
Примечание: Если при создании нового шаблона потока заданий используется динамический inventory, убедитесь, что для этого inventory включена опция update on launch.
Итак, мы научились создавать дерево решений, комбинируя имеющиеся плейбуки, настраивая запуск входящих в них заданий и создавая уведомления. Особенно приятно, что все эти возможности доступны не только в корпоративной версии Ansible Tower, поэтому вы можете поиграться с потоками заданий прямо сейчас.
Узнать больше о том, как создавать и изменять шаблоны потоков заданий, можно в официальной документации по Ansible, на специальном вебинаре и в комментариях к этому посту.
Рассмотрим, что такое шаблоны потоков заданий, в чем их польза, как их создавать и редактировать, а также ряд других полезных моментов по их использованию.
Чем полезны потоки заданий
Они помогают формализовать и упорядочить взаимодействие команд, например, сетевиков и разработчиков, предоставив им доступ к соответствующим потокам заданий. При этом участникам даже не надо знать состав и порядок выполнения заданий потока, поскольку все это уже настроено тем, кто его создал. Увязывая задания различных типов и унифицируя проекты, потоки заданий избавляют представителей одной команды от необходимости в точности понимать, что делает другая команда, и наоборот.
Кроме того, потоки заданий позволяют увязать абсолютно любое количество плейбуков в алгоритмическую цепочку любой сложности, где выбор следующего для выполнения задания зависит от успеха или неудачи выполнения предыдущего.
Как их создавать
Щелкните Templates в главном меню Ansible Tower:
Затем щелкните Add, и выберите Workflow Template:
Появится экран, где можно указать имя и сохранить шаблон потока заданий:
После того, как закончите, перейдите в Edit Workflow:
Появится экран, где можно добавлять шаблоны заданий и задавать условия их запуска (при ошибке или при успешном выполнении, либо безусловно):
Условия запуска задаются в нижней части панели справа:
Потоки заданий Ansible могут быть как предельно простыми…
… так и очень сложным:
После того, как вы настроите и сохраните шаблон потока заданий, его можно запускать. Для этого достаточно щелкнуть значок с ракетой справа от имени шаблона:
Что еще можно делать с потоками заданий
Их можно запускать по расписанию. Для этого щелкните значок календаря рядом с названием шаблона потока заданий:
… и настройте параметры его автозапуска:
Чтобы скопировать шаблон потока заданий, щелкните значок, помеченный стрелкой на скрине ниже:
Однако, имейте в виду, что при копировании потока заданий его разрешения, уведомления и расписания не копируются.
Если вам нужно задать дополнительные переменные для плейбуков, задействованных в шаблоне потока заданий, и/или организовать ввод информации от пользователя, то это можно сделать с помощью опросов. Чтобы создать Опрос, выберите шаблон потока заданий и щелкните Add Survey:
Появится экран опроса, где можно задать вопросы и указать типы ответов:
Уведомления позволяют отслеживать выполнение потоков заданий. Просто выберите поток заданий, для которого хотите настроить уведомления, и щелкните Notifications:
Обратите внимание, что в списке уведомлений уже есть кое-какие записи. Поэтому на отрывшемся экране надо выбрать то, что вам нужно, например, на скрине мы выбрали уведомление Workflow-Specific Notification, для которого задана активации как при успешном, так и при неудачном запуске:
Примечание: Если при создании нового шаблона потока заданий используется динамический inventory, убедитесь, что для этого inventory включена опция update on launch.
Заключение
Итак, мы научились создавать дерево решений, комбинируя имеющиеся плейбуки, настраивая запуск входящих в них заданий и создавая уведомления. Особенно приятно, что все эти возможности доступны не только в корпоративной версии Ansible Tower, поэтому вы можете поиграться с потоками заданий прямо сейчас.
Узнать больше о том, как создавать и изменять шаблоны потоков заданий, можно в официальной документации по Ansible, на специальном вебинаре и в комментариях к этому посту.