Как установить плагины в jenkins с помощью API удаленного доступа jenkins? - PullRequest
10 голосов
/ 19 марта 2012

Хотелось бы узнать, как я могу установить плагин для Jenkins, используя Jenkins Remote API доступа? Я нашел способ установки с помощью jenkins CLI. Но мне нужно знать, как сделать то же самое с помощью API. Я пытался использовать библиотеку jenkins-python. Но я не нашел способа установить плагин там.

Ответы [ 5 ]

34 голосов
/ 31 декабря 2013

Отправьте (HTTP POST) следующие данные XML (с вашим идентификатором плагина @ версия) в менеджер плагинов Jenkins.Проверьте мой скрипт установки плагина jenkins на gist.

Этот HTTP-запрос POST устанавливает jenkins git plugin 2.0.

curl -X POST -d '<jenkins><install plugin="git@2.0" /></jenkins>' --header 'Content-Type: text/xml' http://localhost:8080/pluginManager/installNecessaryPlugins

1 голос
/ 28 июня 2016

В дополнение к уже упомянутым методам (я лично использовал " curl uploadPlugin ", предоставленный @bbaassssiiee), вы должны учитывать, что если вы используете pluginManager, Jenkins попытается загрузить ваш плагин динамически, но в случае, если вам нужно перезапустить Jenkins для правильной инициализации плагина (это был мой случай), вы должны добавить:

 curl -kX POST https://${JENKINS_URL}/safeRestart

Если вы скопируете плагин непосредственно в jenkins / plugin , перезапуск обязателен для загрузки плагина.

1 голос
/ 18 января 2016

Некоторые плагины сложно обновить в файловой системе, потому что другие зависят от нее (один из примеров - учетные данные). Для таких плагинов их можно обновить только через веб-интерфейс.

Интерфейс Jenkins имеет страницу в разделе «Управление Jenkins» -> «Управление плагинами». Под вкладкой «Дополнительно» находится форма «uploadPlugin». Это позволяет автоматизировать веб с помощью curl, вам может потребоваться добавить аутентификацию.

 curl -i -F file=@pluginfilename.hpi http://jenkinshost/jenkins/pluginManager/uploadPlugin 
1 голос
/ 19 марта 2012

Я не думаю, что это возможно.Однако в качестве обходного пути вы можете рассмотреть возможность создания задания, которое бы устанавливало плагины через CLI Jenkins;Затем вы можете вызвать это задание через API с соответствующими параметрами.

0 голосов
/ 19 марта 2013

Как подсказывает malenkiy_scot, мы можем создать работу и использовать CLI Jenkins.Вот секретный способ, который я использую для автоматизации установки плагинов.Плагины Jenkins доступны в зеркале Jenkins здесь: http://updates.jenkins -ci.org / latest Эта ссылка может ничего не перечислять, но вы можете скачать плагин, если знаете его имя.Например, если вы хотите загрузить плагин skype-notifier, вы можете скачать его с http://updates.jenkins -ci.org / latest / skype-notifier.hpi Общий URL-адрес: "http://updates.jenkins -ci.org / latest / .hpi "

После загрузки этого плагина он должен перейти в каталог" plugins "в домашнем каталоге Jenkins на сервере.Для машины с Linux это, скорее всего, будет в "/ var / lib / jenkins / plugins".Простой пример

wget http://updates.jenkins-ci.org/latest/skype-notifier.hpi
mv skype-notifier.hpi /var/lib/jenkins/plugins

Здесь следует отметить две вещи:

  1. Если у плагина есть какие-либо зависимости, они не будут установлены по умолчанию.Если вы знаете, какие другие плагины необходимы, они могут быть установлены таким же образом.Здесь нужно немного ручного процесса.Но если требуется один и тот же набор плагинов, зависимость можно разрешить только один раз, и можно написать сценарий для загрузки и перемещения их в дом Jenkins.
  2. Загруженные плагины нельзя использовать сразу.Требуется перезагрузка Дженкинса.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...