Интеграция Jira и ActiveDirectory

Недавно интегрировал Jira v3 с ActiveDirectory (далее AD).

Для настройки Jira достаточно прочитать и выполнить действия описанные в документации, я опишу способ настройки автоматического импорта пользователей из AD.

Считаем, что вы можете успешно создать XML файл для создания пользователей в Jira, включили Jelly Runner, и можете через WEB интерфейс администрирования Jira выполнить созданный XML файл. Сама Jira у вас настроена, запускается и работает без проблем.

Для автоматизации всего процесса импорта пользователей из AD нужно сделать следующее:

Добавить в cron пользователя, с правами которого работет Jira следующую команду:

0       */1     *       *       *       cd ~/SOFT/jira-ldap-userimporter-1.1; java -jar jira-ldap-userimporter-1.1.jar > AD.export && ./buildADul.sh

Где папка:

~ — домашняя папка пользователя, с правами которого работает Jira, подразумевается, весь дистрибутив Jira распакован в эту директорию.

SOFT/jira-ldap-userimporter-1.1 — папка, в которой находится программа для импорта пользователей из AD и создания XML файла для JellyRunner.

Скрипт buildADul.sh — простой скрипт на bash следующего содержания:

#!/bin/bash
# Script to build userlist for Jira.
# ver 0.1
 
export PATH="/usr/kerberos/sbin:/usr/local/sbin:/usr/sbin:/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/root/bin"
 
WRKP="~/SOFT/jira-ldap-userimporter-1.1/"
ADFILE="AD.export"
AD="AD"
 
cd $WRKP
 
echo "<JiraJelly xmlns:jira=\"jelly:com.atlassian.jira.jelly.JiraTagLib\">" > $AD
echo "<jira:Login username=\"CHANGE_ME\" password=\"CHANGE_ME\">" >> $AD
cat $ADFILE | grep -v "JiraJelly" >> $AD
echo "</jira:Login>" >> $AD
echo "</JiraJelly>" >> $AD

Вместо CHANGE_ME нужно указать логин и пароль пользователя Jira с правами администратора или пользователя с возможностью выполнения Jelly скриптов.

jira:login в данном случае требуется для выполнения авторизации в Jira, и создания нужных переменных в контексте выполнения Jelly скрипта, без этого вы будете получать ошибку при запуске созданного скрипта через com.atlassian.jira.jelly.service.JellyService.

Пример ошибки:

Tag CreateUser requires (jelly.username) variables to be set in the Context

Соответственно XML файл у нас создается в нужном формате, теперь можно создать сервис по запуску данного файла в Jira. Для этого переходим в Администрирование — Services и в разделе Add Service заполняем поля следующим образом:

Имя — AD Import

Class — com.atlassian.jira.jelly.service.JellyService

Delay — 720

Жмем Add Service и в поле Input File указываем полный путь в рамках локальной файловой системы сервера до XML файла с Jelly командами. Пользователь с правами которого работает Jira должен иметь возможность прочитать данный файл.

По идее все, теперь каждые 12 часов у вас будет происходить автоматический импорт пользователей из AD. Удаление пользователей должно производиться вручную, с переносом назначенных багов на кого-нибудь другого.

Комментировать

Это не спам.