我想知道,如何使用Jenkins Remote 访问API为Jenkins安装插件? 我找到了使用jenkins CLI进行安装的方法。但我需要知道如何使用API来做同样的事情。 我试过使用jenkins-python库。但我没有找到任何方式 安装插件那里。如何在jenkins远程访问API的帮助下在jenkins中安装插件?
回答
我不认为这是可能的。但是,作为一种解决方法,您可以考虑创建一个可通过Jenkins CLI安装插件的作业;然后您可以使用适当的参数通过API调用该作业。
正如malenkiy_scot所建议的,我们可以创建一个工作并使用Jenkins CLI。这是我为自动安装插件所采取的秘密方式。 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”
下载该插件后,它应该到Jenkins home的“plugins”目录在服务器上。对于linux机器,它很可能在“/ var/lib/jenkins/plugins”中。简单的例子
wget http://updates.jenkins-ci.org/latest/skype-notifier.hpi
mv skype-notifier.hpi /var/lib/jenkins/plugins
有两件事情,这里要注意:
- 如果插件有任何相关性,这些将不会被默认安装的。如果您知道需要其他插件,则可以按照相同的方式安装这些插件。这里需要一些手动过程。但是,如果需要一组相同的插件,依赖关系只能解决一次,脚本可以写入下载并将它们移动到Jenkins主页。
- 下载的插件无法立即使用。重新加载Jenkins是必需的。
向Jenkins插件管理器发送(HTTP POST)以下xml数据(包含plugin-id @ version)。看看我的jenkins install plugin script的要点。
此HTTP POST请求安装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
一些插件都很难在文件系统中更新,因为其他依赖于它(证书就是一个例子)。对于这些插件,只能使用Web界面进行更新。
Jenkins前端在'Manage Jenkins' - >'管理插件'下有一个页面。在“高级”标签下是“uploadPlugin”的表单。它允许卷曲的Web自动化,你可能需要添加验证。
curl -i -F [email protected] http://jenkinshost/jenkins/pluginManager/uploadPlugin
除了已经提到的方法(我个人使用的“卷曲uploadPlugin”一个由@bbaassssiiee提供),你需要考虑的是,如果你使用的插件管理詹金斯将尝试dinamically加载插件,但如果你需要重新启动詹金斯正确初始化插件(这是我的情况),你应该增加:
curl -kX POST https://${JENKINS_URL}/safeRestart
如果你直接复制插件詹金斯/插件,重启是强制性的要加载的插件。
- 1. 如何安装Rake Jenkins插件?
- 2. 如何在Windows Docker上的jenkins中预先安装插件?
- 3. 如何手动在Jenkins中安装插件?
- 4. Jenkins - 远程访问被拒绝
- 5. jenkins - 插件(凭证)手动安装
- 6. 安装Jenkins DCOS - Marathon插件后缺失
- 7. Jenkins插件安装与厨师食谱
- 8. 如何离线安装jenkins?
- 9. 帮助安装Symfony插件
- 10. 如何在ubuntu中使用命令行在Jenkins中安装插件?
- 11. 失败:在jenkins中安装Git插件2.7.4
- 12. 在java中访问Jenkins插件静态文件
- 13. 在Jenkins安装npm期间访问私有存储库repo
- 14. 我如何在jenkins中安装selenium chrome驱动程序?
- 15. Jenkins插件下拉菜单
- 16. 如何从命令行安装jenkins插件?
- 17. 如何在远程访问JSON API的同时在Jenkins中进行身份验证?
- 18. Jenkins远程部署
- 19. Jenkins没有在Windows中安装Xvfb
- 20. 将jenkins安装到weblogic中
- 21. 在Jenkins中访问BUILD_NUMBER推荐构建插件脚本
- 22. 如何测试是否在管道DSL(Groovy)中安装了Jenkins插件
- 23. 如何调试Jenkins插件
- 24. 使用PHP连接到Jenkins远程API
- 25. Jenkins JIRA插件问题
- 26. Jenkins xUnit插件问题
- 27. 如何在使用Resttemplate访问时验证jenkins xml api?
- 28. 在OSX上的Jenkins上安装Docker
- 29. Jenkins&TFS插件
- 30. 建立在远程机器上的Jenkins
这应该是新接受的答案。此外,如果您将插件指定为'git @ latest',则会安装最新版本的插件。这里使用的插件名称是'Plugin ID'字段,例如[wiki.jenkins-ci.org](https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin) 。唯一要记住的另一件事是'curl'操作将在插件及其先决条件完全安装之前返回。如果您正在自动执行此操作,强烈建议在安装插件后插入一些睡眠定时器。 – 2014-03-31 17:27:28
这是金!这应该是被接受的答案。 – OkezieE 2014-12-09 23:23:23
'curl -X POST --form-string“plugin.git.default = on”http:// localhost:8080/pluginManager/install' 也有可能,其中'git'是插件名称。但是这需要重新启动Jenkins。 – 2016-07-13 08:45:35