Jenkisn官方提供两种支持方式的版本:

  • LTS(Long-term-Support)版本:大约每12周更新一次
  • Weekly Release:每周更新一次,每个版本会有一些enhancement和bug fix

我们使用的是Weekly版本,这里记录一下Jenkins版本的升级和插件更新。 最初我们是使用rpm安装的Jenkins,这种安装方式jenkins.war被默认安装到/usr/lib/jenkins下。 升级Jenkins的版本只要将这个目录的jenkins.war替换成新的版本,重启Jenkins服务即可。

升级Jenkins版本

将升级过程做成ansible的playbook,便于下次升级时重放。

1├── roles
2│   ├── jenkins
3│   │   ├── defaults
4│   │   │   └── main.yml
5│   │   ├── handlers
6│   │   │   └── main.yml
7│   │   └── tasks
8│   │       └── main.yml
9└── upgrade-jenkins.yml

roles/jenkins/defaults/main.yml:

1---
2
3jekins_version: 2.64
4jenkins_war_path: /usr/lib/jenkins
5jenkins_war_url: http://updates.jenkins-ci.org/download/war/{ { jekins_version } }/jenkins.war

roles/jenkins/handlers/main.yml:

1---
2
3- name: restart jenkins
4  systemd:
5    name: jenkins
6    state: restarted
7    enabled: true

roles/jenkins/tasks/main.yml:

 1---
 2  
 3- name: download jenkins war
 4  get_url:
 5    url: "{ { jenkins_war_url } }"
 6    dest: "/tmp"
 7  register: download_jenkins
 8  
 9- name: copy the new jenkins war
10  copy:
11    src: "{ { download_jenkins.dest } }"
12    dest: "{ { jenkins_war_path } }"
13    owner: root
14    group: root
15    mode: 0644
16    backup: yes
17    remote_src: yes
18  changed_when: True
19  notify:
20    - restart jenkins

upgrade-jenkins.yml:

1---
2- hosts: jenkins-master
3  become: true
4  roles:
5     - role: jenkins

在升级前要确保没有Jenkins没有在运行任何Job,可以先在Jenkins » 系统管理 » 准备关机,安全的将Jenkins服务停止。

插件更新

更新Jenkins插件比较简单,直接在 系统管理 » 插件管理里操作即可。

参考