Установка локального плагина через jenkins-cli - PullRequest
0 голосов
/ 22 октября 2018
  1. Я включил «Включить CLI over remoting».
  2. Я установил TCP-порт для JNLP либо фиксированным, либо случайным.
  3. Я скачал jenkins-cli.jar успешно.

при выполнении команды установки плагина я получаю:

  • При выполнении: java -jar jenkins-cli.jar -auth пользователь: pass-s http://localhost:8080 файл плагина установки: ///folder/plugin.hpi

    ОШИБКА: при выполнении команды install-plugin возникла непредвиденная исключительная ситуация.java.io.FileNotFoundException: /folder/plugin.hpi (нет такого файла или каталога)

  • Без файла: //

    / folder / plugin.hpi isни действительный файл, ни URL, ни имя артефакта плагина в центре обновлений

Я перепробовал все возможные комбинации, файл существует.

Редактировать: сисключение, которое он продолжает думать, что это url, а не файл:

at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:93)
    at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
    at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
    at java.net.URL.openStream(URL.java:1045)
    at hudson.FilePath.copyFrom(FilePath.java:890)

"

Edit 2: он работает, когда передается HTTP-URL, но потребует от меня его загрузки на серверкоторого у меня нет каждый раз.

Редактировать 3: Я попытался переместить файл в ту же папку Jenkins / var / lib / jenkins и дать ему разрешения 777.

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Это была комбинация решения @Alex O, и я использовал -auth myuser: mypass вместо --username admin --password пароль и переключатель --remoting.

Это выглядит так:

java -jar jenkins-cli.jar -s http://host-ip:8080/ -remoting install-plugin ./plugin.hpi --username my-user --password my-pass -restart
0 голосов
/ 22 октября 2018

URL, который вы указываете в качестве аргумента для install-plugin, должен быть доступен для основного процесса Jenkins.Если вы получите сообщение об ошибке

/folder/plugin.hpi (No such file or directory)

, то, скорее всего, проблема с правами доступа, или /folder не смонтировано на хосте мастера (или в контейнере мастера, если вы используете docker).

Вот почему URL-адрес HTTP работает.

Итак, для file:// URL-адресов необходимо согласовать монтирования и разрешения файловой системы между пользователем / машиной CLI и основным пользователем / машиной Jenkins.

...