Me gustaría saber, ¿cómo puedo instalar un complemento para Jenkins, utilizando la API de acceso de Jenkins Remote ? Encontré una manera de instalar usando jenkins CLI. Pero necesito saber cómo hacer lo mismo usando API. Intenté usar la biblioteca jenkins-python. Pero no encontré ninguna forma de instalar el complemento allí.¿Cómo instalar complementos en jenkins, con la ayuda de la API de acceso remoto de jenkins?
Respuesta
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.
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í:
- 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.
- Los complementos descargados no se pueden usar de inmediato. Se requiere una recarga de Jenkins.
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
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
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á
- 1. ¿Puede un Jenkins activar un trabajo en un jenkins remoto
- 2. Jenkins redirigir/a/Jenkins en la instalación independiente
- 3. Cómo instalar C++ continuamente en Hudson/Jenkins
- 4. Instalar Sonar y Jenkins en Tomcat
- 5. ¿cómo podemos instalar la Ayuda de Java Api en Eclipse?
- 6. Jenkins: sobre la ruta de build.xml
- 7. ¿Cómo puedo personalizar la salida de Jenkins?
- 8. Detener la ejecución de compilación en Jenkins
- 9. Error de autenticación con SVN en Jenkins
- 10. Cómo desinstalar un complemento de Jenkins (Hudson)?
- 11. Cómo conservar el valor de la variable en Jenkins
- 12. Consola de script jenkins: lista de métodos jenkins disponibles?
- 13. ¿Continuum como reemplazo de Jenkins?
- 14. Uso de gtest en jenkins
- 15. Trabajos de Jenkins desaparecidos
- 16. configuración de Jenkins
- 17. Errores de PermGen en Jenkins
- 18. Jenkins en Windows muestra la interfaz de usuario en ruso
- 19. ¿Puede un jenkins maestro ejecutar trabajos en jenkins remotos?
- 20. Infraestructura con maven, Jenkins, Nexus
- 21. Despliegue automático con Jenkins/embarcadero
- 22. Jenkins CI: Cómo desencadenar compilaciones en el compromiso de SVN
- 23. Configuración de RVM y Jenkins
- 24. Jenkins - j_acegi_security_check
- 25. Herencia de trabajo en trabajos de Jenkins
- 26. ¿Puedo extender Jenkins con Jython/Python
- 27. Jenkins - Configure Jenkins para sondear los cambios en SCM
- 28. Python unittest en Jenkins?
- 29. Jenkins y JaCoCo con SBT
- 30. Despliegue de .NET con Jenkins/Hudson
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. –
¡Esto es dorado! esta debería ser la respuesta aceptada. – OkezieE
'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. –