import urllib2,requests
UPDATES_URL = 'https://updates.jenkins-ci.org/update-center.json?id=default&version=1.509.4'
PREFIX = 'http://127.0.0.1:8080'
def update_plugins():
"look at the source for /pluginManager/checkUpdates and downloadManager in /static/<whatever>/scripts/hudson-behavior.js"
raw = urllib2.urlopen(self.UPDATES_URL).read()
jsontext = raw.split('\n')[1] # ugh, JSONP
json.loads(jsontext) # i.e. error if not parseable
print 'received updates json'
# post
postback = PREFIX+'/updateCenter/byId/default/postBack'
reply = requests.post(postback,data=jsontext)
if not reply.ok:
raise RuntimeError(("updates upload not ok",reply.text))
print 'applied updates json'
7条答案
按热度按时间mrphzbgm1#
一 个 简单 但 有效 的 方法 是 首先 列出 所有 已 安装 的 插件 , 寻找 更新 并 安装 它们 。
x1月 1 日
每个 有 更新 的 插件 , 在 最 后 的 括号 里 都 有 新 的 版本 。 所以 你 可以 用 grep 来 表示 :
java -jar /root/jenkins-cli.jar -s http://127.0.0.1:8080/ list-plugins | grep -e ')$' | awk '{ print $1 }'
如果 您 使用 插件 名称 调用 install-plugin , 它 将 自动 升级 到 最 新 版本 。
最 后 你 必须 重新 启动 jenkins 。
将 所有 这些 放在 一起 ( 可以 放在 shell 脚本 中 ) :
中 的 每 一 个
x6h2sr282#
您实际上可以从计算机终端(而不是Jenkins终端)安装插件。
1.从插件网站下载插件(
http://updates.jenkins-ci.org/download/plugins
)1.将该插件复制到
$JENKINS_HOME/plugins
目录1.此时,启动Jenkins或调用重新加载设置服务(
http://yourservername:8080/jenkins/reload
)这将启用Jenkins中的插件,并假定Jenkins已启动。
7cwmlq893#
下面 是 使用 Ansible 部署 Jenkins CI 插件 的 方法 , 当然 Ansible 是 从 终端 使用 的 。
中 的 每 一 个
这 是 一 个 更 完整 示例 的 一 部分 , 您 可以 在 以下 位置 找到 该 示例 :https://github.com/sakaal/service_platform_ansible/blob/master/roles/jenkins_ci/tasks/main.yaml 的 最 大 值
您 可以 根据 自己 的 需要 随意 调整 。
zengzsys4#
您可以使用此命令行更新插件列表
shyt4zoc5#
FYI --一些插件(特别是mercurial)不能从命令行正确安装,除非你使用它们的短名称。我认为这与jenkins包信息数据中的触发器有关。你可以通过在支持javascript的浏览器中访问
127.0.0.1:8080/pluginManager/checkUpdates
来模拟jenkins自己的包更新。或者,如果你觉得自己是受虐狂,你可以运行下面的python代码:
一旦你运行了这个程序,你应该能够运行
jenkins-cli -s http://127.0.0.1:8080 install-plugin mercurial -deploy
。h9vpoimq6#
在当前Jenkins版本中,CLI只能通过SSH使用。这必须在管理界面的“全局安全设置”页面中启用,如docs中所述。此外,应触发更新的用户必须添加其公共ssh密钥。
使用来自已接受答案的修改后的shell脚本,可以如下所示自动执行此操作,您只需替换HOSTNAME和USERNAME:
这将greps Jenkins CLI的已用SSH端口,然后通过SSH连接,而不检查主机密钥,因为每次Jenkins重新启动时主机密钥都会更改。
然后升级所有具有可用更新的插件,然后重新启动Jenkins。
qgelzfjb7#
在groovy中
groovy路径有一个很大的优势:可以将其添加到作业中的“systemgroovyscript”构建步骤中而无需任何更改。
使用以下内容创建文件“update_plugins.groovy”:
然后执行以下curl命令: