Как включить аутентификацию при удаленном вызове Хадсона / Дженкинса - PullRequest
0 голосов
/ 21 марта 2019

Как включить аутентификацию при удаленном вызове задания Хадсона / Дженкинса?

В настоящее время мы используем версию Hudson v3.0.1-b2.

Мы вызываем Hudson job удаленно, чтобы начать сборку, используя Hudson rest api.

Мы хотим включить аутентификацию во время удаленного вызова задания Хадсона. Читайте онлайн, есть способ сгенерировать API-токен для пользователя и использовать его при удаленном вызове задания Хадсона.

В версии Hudson, которую мы используем, мы не видим, чтобы пользователь show API Token отображал пользователя в разделе конфигурации пользователя. пожалуйста, предложите.

enter image description here

1 Ответ

0 голосов
/ 21 марта 2019

Запуск сборки с параметрами:

Параметры чувствительны к регистру!

При передаче параметров через URL, регистр важен!Например, token = TOKEN & MESSAGE = yo не будет работать, если задание определяет параметр как Сообщение.

Сборка может быть запущена только путем POSTing к http://server/job/myjob/buildWithParameters?PARAMETER=Value Все параметры должны быть корректно экранированы URL-адресом.Для использования с wget также укажите URL в командной строке.

Параметр delay = 0sec можно добавить, чтобы немедленно начать сборку.Чтобы использовать параметр запуска, значение должно быть в формате jobname # buildNumber (например, "& MyRunParam = foo-job% 2399" для foo-job # 99)

Если вы используете авторизациютокен для запуска сборок (Job -> Configure -> 'Build Triggers' -> 'Trigger builds удаленно (например, из сценариев)'), вы можете получить доступ к: http://server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value (обратите внимание, что & должно бытьили через весь URL-адрес, если используется сценарий оболочки Unix.)


Если вы используете защиту на основе матрицы (в разделе «Настройка глобальной безопасности» >> Авторизация), то «Триггер создает«удаленно» исчезнет, ​​так как предполагается, что вы будете аутентифицировать запросы, используя учетную запись пользователя Jenkins.

Для этого вы можете сделать HTTP-запрос с именем пользователя / паролем (или, что еще лучше, именем пользователя /Токен API):

curl -X POST "https://username:api -token @ JENKINS_URL / job / Example / build "

Получить пользователя API и токен:

Авторизуйтесь в jenkins по http://192.168.99.20:8080 адресу.Нажмите на свое имя пользователя (у меня admin) в правой части страницы.Выберите опцию «Настроить», чтобы перейти на страницу http://192.168.99.20:8080/user/admin/configure.В разделе «Токен API» нажмите кнопку «Показать токен API».Отметьте «Идентификатор пользователя» и «Токен API» для использования в вашей команде curl позже.например, admin: 85703fb68927f04968630e192e4927cb


Если все вышеперечисленное не является решением вашей проблемы, вы можете попробовать следующий плагин: https://wiki.jenkins.io/display/JENKINS/Build+Token+Root+Plugin

Примеры:

ЗапуститьЗадание RevolutionTest с токеном TacoTuesday:

buildByToken/build?job=RevolutionTest&token=TacoTuesday

Запустить задание RevolutionTest с токеном TacoTuesday и параметром Type, поставляемым со значением Mexican:

buildByToken/buildWithParameters?job=RevolutionTest&token=TacoTuesday&Type=Mexican

...