Связаться по Skype: vkarabedyants
Позвонить Написать
+7 (499) 404-28-83

Блог о системном администрировании серверов и сайтов

Установка, настройка программного обеспечения Linux, Windows операционных систем

Jira. Дополнительные настройки и автоматизация

В этой части нашего исследования мы поговорим о том, как настроить Jira выполнять автоматические действия, которые упрощают эксплуатацию системы управления задачами, настройку данной системы производят DevOps администраторы.

Первое, с чем сталкиваешься  при внедрении любой системы управления задачами или сервис –деск – это отсутствием времени на заведение задач в систему. Но по сути каждый это и так делает, когда описывает задачу для подчиненного в электронной почте, чате или просто пишет план на бумаге. Как можно упростить процесс создания задачи?  С точки зрения автора достаточно удобным и применимым к различным сценариям использования является создание задачи из электронного письма.

Давайте настроим эту возможность.

В первую очередь нужно создать почтовый ящик для Jira, на который будут приходить сообщения.

Следующим этапом в меню System – Incoming Mail добавить mail server. Для этого нужно иметь стандартные настройки для подключения: сервер imap, порт, логин и пароль от почтового ящика.

После того, как настроен сервер приема почты, нужно добавить mail handler для нашего проекта.

Это делается в 2 шага: на первом мы указываем имя для mailHandler, mail сервер, задержку проверки почтового ящика, что нужно сделать из полученного письма. Можно сделать задачу, комментарий, можно из первого письма с определенной темой делать задачу, а из последующих комментарии и еще несколько вариантов.

автоматическое создание заявки

На втором шаге задаются остальные настройки обработки сообщения и задачи.

Комментарии к полям говорят сами за себя.

автоматическое создание заявки по письму

Нажатием на кнопку тест проверяем настройки и при успешном результате добавляем MailHandler.

service desk автоматические заявки

Проверим задачи проекта и увидим, что из отправленного письма  создалась новая задача с указанными в настройках параметрами.

интеграция jira service desk

задача через письмо

Перейдем к следующей полезной автоматизации. Выполнение каждой задачи должно контролироваться автором. Настроим автоматическое переназначение задачи, если был установлен статус done.

Для этого нужно выбрать Workflow проекта. Включить его редактирование.

автоматизация задач

Кликнуть на переход в Done. И добавить пост-функцию   «Assign to Reporter». После этого переход в Done выглядит так:

задача письмом

После этого нужно опубликовать новую версиюworkflow нажатием PublishDraft. И наш Workflow снова в работе.

А ниже будет я покажу, как сделать полезную автоматизацию на основе полученных знаний и небольших заготовок. В качестве примера я буду использовать процесс плановой проверки состояния сервера, подобно такой, которая ежемесячно выполняется на серверах в зоне обслуживания нашей компании.

Итак, на каждом подконтрольном сервере планировщиком задач выполняется скрипт, который собирает параметры, позволяющие оценить состояние здоровья сервера и отправляет его на определенный e-mail.  В моем случае скрипт работает на PowerShell, что позволяет собирать инфо с Windows серверов и не только ;). Как вы уже догадались – скрипт отправляет письмо на e-mail Jira, которая в свою очередь создает задачу по обслуживанию которое требуется исходя из того, что собрал скрипт.  Технический специалист, получив задачу обработав результат работы скрипта приступает к обслуживанию сервера, при этом задача переводится в состояние inProgress. Когда обслуживание закончено (или приостановлено), задача переводится в Resolved (или Open). На время работы с сервером система мониторинга приостанавливает оповещения об изменении состояния сервера.

Теперь о тонкостях реализации.  Во-первых, под эту реализацию создается отдельный тип задачи: Operation. Для этого Типа создается свой workflow  из копии  основного.  Для того, чтобы создать  задачу  типа Operation (для выделения ее из остального потока задач) с помощью потового сообщения создается дополнительный MailHandler. Для того, чтобы создать новый MailHandler, нужен новый e-mail адрес, в связи с чем создаем алиас для нашего почтового ящика Jira.

настройка jira

 

Все вышесказанное мы уже проделывали. Jira успешно получает задачу. Как же настроить в jira для управления системой мониторинга? Для этого мы будем использовать webHooks. ВебХуки – это вызов некоторого URL, при появлении определенного события. В нашем случае – это будет переход из одного статуса в другой. Jira Делает POST запрос на указанный URL и в качестве параметров передает в виде JSONсодержимое всех полей задачи. Выглядит это вот так:

Огого, скажете Вы. Вот и я думаю, что с этим должен кто-то справиться. Но у меня нет стороннего ПО и каких-либо утилит готовых обработать полученную информацию, поэтому я решила написать небольшой php-скрипт. Суть его работы в том, что он вытаскивает нужную информацию из полученных данных, и передает ее на вход другого cmd-скрипта, запуск которого требуется в том или ином случае.  В нашем примере, получив содержимое задачи, из него нужно выбрать всего несколько полей transition.transitionName, Issue.Summary и issue.IssueType.Name. Если issue.IssueType.Name = Operation AND transition.transitionName = StartProgress, то перейти по ссылке, которую  сформировать для отключения уведомлений с использованием поля Issue.Summary. В Issue.Summary наш ps-скрипт, который собирал параметры здоровья сервера, вписал имя исследуемого хоста (в том виде, в котором хост заведен в систему мониторинга). В моей инфраструктуре используется Nagios. Зная имя хоста, к Nagios можно обратиться по http и отключить уведомления. Для этого используется следующий URL.

Для включения уведомлений используется cmd_typ=12. Для того, чтобы это заработало необходимо правильно настроить авторизацию в Nagios и разрешения доступа к cmd.cgi. Однако это остается за рамками данной статьи.

Итак, задача php-скрипта, который «скрывается» за URL вызываемый Jira, распарсить передаваемый в него JSON и вызвать утилиту командной строки с нужными параметрами. Таким образом, решается не только задача отключения уведомлений системы мониторинга, но и другие автоматизации. Например, мне нужно автоматически создавать проекты в Jira c определенными параметрами. Есть cmd-скрипт который это делает. Добавляем эту возможность в php-скрипт. А дальше просто создаем задачи с правильными параметрами. Конечно, скрипт – это не панацея. Есть и другие продукты, с  которыми подобным образом можно интегрировать Jira. Например, таким же образом работает один из плагинов, позволяющий отправлять СМС из Jira. Есть и другие решения. Однако, моей задачей было, наглядно показать, как это работает. Мне кажется получилось удачно.

Дальше  сугубо исполнение.

System- Advanced –WebHooks. Таким получился наш веб-хук.

настройка jira

Настраиваем post-function внутри workflow.  (На скриншоте выше видно, что они уже настроены. Это —  чтобы не загромождать статью однотипными картинками.)

Необходима настройка и интеграция JIRA, обращайтесь [email protected]

Оставить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.