如何从终端更新jenkins插件?

ani*_*eni 24 terminal hudson jenkins jenkins-plugins

我正在尝试创建一个用于设置Jenkins的bash脚本.有没有办法从Jenkins终端更新插件列表?

首次设置时,列表中没有可用的插件

即:

java -jar jenkins-cli.jar -s `http://localhost:8080` install-plugin dry
Run Code Online (Sandbox Code Playgroud)

不行

Mic*_*raz 36

一种简单但有效的方法是首先列出所有已安装的插件,查找更新并安装它们.

java -jar /root/jenkins-cli.jar -s http://127.0.0.1:8080/ list-plugins

每个插件都有可用的更新,最后在括号中有新版本.所以你可以为那些:

java -jar /root/jenkins-cli.jar -s http://127.0.0.1:8080/ list-plugins | grep -e ')$' | awk '{ print $1 }'

如果您使用插件名称调用install-plugin,它会自动升级到最新版本.

最后你必须重新启动jenkins.

把它们放在一起(可以放在shell脚本中):

UPDATE_LIST=$( java -jar /root/jenkins-cli.jar -s http://127.0.0.1:8080/ list-plugins | grep -e ')$' | awk '{ print $1 }' ); 
if [ ! -z "${UPDATE_LIST}" ]; then 
    echo Updating Jenkins Plugins: ${UPDATE_LIST}; 
    java -jar /root/jenkins-cli.jar -s http://127.0.0.1:8080/ install-plugin ${UPDATE_LIST};
    java -jar /root/jenkins-cli.jar -s http://127.0.0.1:8080/ safe-restart;
fi
Run Code Online (Sandbox Code Playgroud)


小智 31

您实际上可以从计算机终端(而不是Jenkins终端)安装插件.

  1. 从插件站点下载插件(http://updates.jenkins-ci.org/download/plugins)
  2. 将该插件复制到 $JENKINS_HOME/plugins directory
  3. 此时要么启动Jenkins,要么调用重装设置服务(http://yourservername:8080/jenkins/reload)

这将启用Jenkins中的插件并假设Jenkins已启动.

cd $JENKINS_HOME/plugins
curl -O http://updates.jenkins-ci.org/download/plugins/cobertura.hpi
curl http://yourservername:8080/reload
Run Code Online (Sandbox Code Playgroud)

  • 将更新的hpi/jpi文件复制到plugins目录也可以升级现有插件.我不知道/ reload url是否足以重启Jenkins,但是通过UI使用"安全重启"(/ safeRestart)可以满足需要. (2认同)
  • 上面不会为正在安装的插件AFAIK安装依赖插件. (2认同)

SAM*_*SAM 7

以下是使用Ansible部署Jenkins CI插件的方法,当然这是从终端使用的.此代码是以下内容的一部分roles/jenkins_ci/tasks/main.yaml:

- name: Plugins
  with_items:                             # PLUGIN NAME
  - name: checkstyle                      # Checkstyle
  - name: dashboard-view                  # Dashboard View
  - name: dependency-check-jenkins-plugin # OWASP Dependency Check
  - name: depgraph-view                   # Dependency Graph View
  - name: deploy                          # Deploy
  - name: emotional-jenkins-plugin        # Emotional Jenkins
  - name: monitoring                      # Monitoring
  - name: publish-over-ssh                # Publish Over SSH
  - name: shelve-project-plugin           # Shelve Project
  - name: token-macro                     # Token Macro
  - name: zapper                          # OWASP Zed Attack Proxy (ZAP)
  sudo: yes
  get_url: dest="{{ jenkins_home }}/plugins/{{ item.name | mandatory }}.jpi"
           url="https://updates.jenkins-ci.org/latest/{{ item.name }}.hpi"
           owner=jenkins group=jenkins mode=0644
  notify: Restart Jenkins
Run Code Online (Sandbox Code Playgroud)

这是一个更完整的示例的一部分,您可以在以下网址找到:https: //github.com/sakaal/service_platform_ansible/blob/master/roles/jenkins_ci/tasks/main.yaml

随意根据您的需求进行调整.