Недавно интегрировал 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. Удаление пользователей должно производиться вручную, с переносом назначенных багов на кого-нибудь другого.