2012-03-19 17 views

Respuesta

1

No creo que esto sea posible. Sin embargo, como solución, puede considerar crear un trabajo que instale complementos a través de Jenkins CLI; luego puede invocar ese trabajo a través de la API con los parámetros adecuados.

0

Según lo sugerido por malenkiy_scot, podemos crear un trabajo y usar la CLI de Jenkins. Esta es la manera secreta que hago para mi automatización en la instalación de complementos. Los complementos de Jenkins están disponibles en el espejo de Jenkins aquí: http://updates.jenkins-ci.org/latest Este enlace puede no mostrar nada, pero puede descargar el complemento si conoce el nombre del complemento. Por ejemplo, si desea descargar el plug-in de Skype-notificador, puede descargarlo de http://updates.jenkins-ci.org/latest/skype-notifier.hpi El URL genérica es "http://updates.jenkins-ci.org/latest/ .hpi"

Después de descargar ese plugin, se debe ir al directorio "plugins" en casa Jenkins en el servidor. Para la máquina Linux, lo más probable es que esté en "/ var/lib/jenkins/plugins". Ejemplo simple

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

Hay dos cosas a tener en cuenta aquí:

  1. Si el plugin tiene ninguna dependencia, los que no se instalará por defecto. Si sabe qué otros complementos se requieren, estos se pueden instalar de la misma manera. Se requiere un poco de proceso manual aquí. Pero si se requiere un mismo conjunto de complementos, la dependencia se puede resolver solo una vez y se puede escribir un script para descargarlo y moverlo a la casa de Jenkins.
  2. Los complementos descargados no se pueden usar de inmediato. Se requiere una recarga de Jenkins.
25

Envíe (HTTP POST) los siguientes datos xml (con su versión de plugin-id @) al administrador de complementos de Jenkins. Mira mi jenkins install plugin script en esencia.

Esta solicitud HTTP POST instala jenkins git plugin 2.0.

curl -X POST -d '<jenkins><install plugin="[email protected]" /></jenkins>' --header 'Content-Type: text/xml' http://localhost:8080/pluginManager/installNecessaryPlugins

+4

Esta debería ser la nueva respuesta aceptada aquí. Además, si especifica el complemento como 'git @ latest', instala la última versión del complemento. El nombre del complemento que se usará aquí es el campo 'Id. Del complemento', como el que se encuentra aquí en [wiki.jenkins-ci.org] (https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin) . La única otra cosa a tener en cuenta, es que la operación 'curl' volverá antes de que el plugin y sus requisitos previos se instalen por completo. Si está automatizando esto, es muy recomendable poner algunos temporizadores de reposo después de instalar un complemento. –

+0

¡Esto es dorado! esta debería ser la respuesta aceptada. – OkezieE

+0

'curl -X POST -form-string" plugin.git.default = on "http: // localhost: 8080/pluginManager/install' También es posible, donde' git' es el nombre del complemento. Pero esto requiere el reinicio de Jenkins. –

1

Algunos plugins son difíciles de actualizar en el sistema de archivos, ya que otros dependen de él (credenciales es un ejemplo). Para tales complementos, solo es posible actualizarlos usando la interfaz web.

Jenkins frontend tiene una página en 'Administrar Jenkins' -> 'Administrar complementos'. Debajo de la pestaña 'Avanzado' hay un formulario para 'cargarPlugin'. Permite la automatización web con curl, es posible que deba agregar autenticación.

curl -i -F [email protected] http://jenkinshost/jenkins/pluginManager/uploadPlugin 
1

Además de los métodos ya mencionados (que yo personalmente utilizado el "rizo uploadPlugin" proporcionado por @bbaassssiiee), debe tener en cuenta que si utiliza PluginManager Jenkins intentará cargar el plugin de forma dinámica, pero en caso de tener que reiniciar Jenkins para inicializar el plugin correctamente (esto fue mi caso), se debe añadir:

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

en caso de copiar el plug-in directamente a Jenkins/plugin, el reinicio es obligatorio para el complemento que se cargará