jenkins部署升级

jenkins部署升级

持续集成|持续部署

代码部署上线流程

以java代码,tomcat上服务为例:

  1. Jenkins从gitlab拉取代码
  2. 编译源代码
  3. 放置配置文件
  4. 打包
  5. scp到目标服务器
  6. 将目标服务器从前端调度器中移除(要逐批更新)
  7. 解压程序包放到webroot中
  8. 重启tomcat服务
  9. 对升级了的部分节点进行测试
  10. 将升级后服务器加入前端的调度列表中
  11. 重复上述步骤,直到将所有节点完成升级,或发现bug回滚并重新开发debug
  12. (若是在docker和k8s的容器云环境,Jenkins还可以将打包后的war包,和基础os镜像构建为镜像,进而以容器化方式运行服务)

Jenkins部署

​ Jenkins部署和运行方式有多种:

  • 运行其war包,运行为java程序;
  • 离线rpm包安装
  • yum仓库安装
  • 单独以docker容器方式运行,需要docker环境;
  • 运行于k8s之上,需要k8s集群;(运行于k8s之上有三种方式)https://www.jenkins.io/doc/book/installing/kubernetes/
    • helm包管理
    • 手写yaml文件
    • 通过部署Jenkins的operator运行Jenkins

此处采用安装离线rpm包和war包的方式,需要java环境,jdk或jre均可;

jdk安装

​ 直接yum安装仓库中的openjdk版本即可,版本为1.8

[root@jenkins-1 ~]# yum install -y java-1.8.0-openjdk-devel.x86_64 java-1.8.0-openjdk.x86_64

[root@jenkins-1 ~]# java -version
openjdk version "1.8.0_272"
OpenJDK Runtime Environment (build 1.8.0_272-b10)
OpenJDK 64-Bit Server VM (build 25.272-b10, mixed mode)

rpm包安装启动

​ 下载离线的rpm包,上传到服务器,直接rpm安装即可,安装后启动

[root@jenkins-1 ~]# ll
total 68052
-rw-------. 1 root root     1391 Aug  8 12:02 anaconda-ks.cfg
-rw-r--r--  1 root root       45 Dec  7 11:26 google_proxy.sh
-rw-r--r--  1 root root 69675984 Dec  7 11:31 jenkins-2.32.3-1.1.noarch.rpm
[root@jenkins-1 ~]# rpm -ivh jenkins-2.32.3-1.1.noarch.rpm 
warning: jenkins-2.32.3-1.1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID d50582e6: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:jenkins-2.32.3-1.1               ################################# [100%]
[root@jenkins-1 ~]# rpm -ql jenkins-2.32.3-1.1.noarch.rpm 
package jenkins-2.32.3-1.1.noarch.rpm is not installed
[root@jenkins-1 ~]# rpm -qpl jenkins-2.32.3-1.1.noarch.rpm 
warning: jenkins-2.32.3-1.1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID d50582e6: NOKEY
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins
[root@jenkins-1 ~]# service jenkins status
● jenkins.service - LSB: Jenkins Continuous Integration Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:systemd-sysv-generator(8)
[root@jenkins-1 ~]# service jenkins start
Starting jenkins (via systemctl):                          [  OK  ]
[root@jenkins-1 ~]# service jenkins status
● jenkins.service - LSB: Jenkins Continuous Integration Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
   Active: active (running) since Mon 2020-12-07 14:54:25 CST; 2s ago

[root@jenkins-1 ~]# ss -nlt
State      Recv-Q Send-Q                                                 Local Address:Port                                                                Peer Address:Port              
LISTEN     0      128                                                                *:22                                                                             *:*                  
LISTEN     0      100                                                        127.0.0.1:25                                                                             *:*                  
LISTEN     0      50                                                                :::42441                                                                         :::*                  
LISTEN     0      50                                                                :::8080                                                                          :::*        

[root@jenkins-1 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword 
805e31ce4f9b41e497ba3b4e5122c2dc

界面访问

​ 访问Jenkins,默认为8080端口,需填入生成的字串

image-20201207145946166

安装插件时失败

安装插件失败的原因有:

  • 被qiang了,需要配置主机的代理http_proxy,或在Jenkins界面配置插件源如清华的;
  • Jenkins版本过低,和现有插件库的较新插件不匹配导致,需要升级Jenkins的版本;
    • 若就需要安装低版本的Jenkins,则可以在Jenkins插件库网址上搜索与低版本Jenkins对应的低版本插件
    • 但版本依赖较为复杂,还是升级的好;

此处原因为Jenkins版本过低,与现有插件匹配不上,需要安装新版本的Jenkins,此处安装的为当前最新稳定版,2.263.1,下载改版本war包,替换原有的2.32.1的war包重新启动即可;

升级后即可重新安装插件,但手动逐一找出推荐插件安装较为繁琐,因此用新的虚拟机重新采用war包方式安装;

image-20201207153423257

war包安装启动

  1. 下载最新war包;https://www.jenkins.io/download/
  2. 安装jdk环境;
  3. 启动war包,java -jar Jenkins.war;https://www.jenkins.io/doc/book/installing/war-file/#war-files
  4. 界面访问,并添加终端启动时,生成了的密码串
  5. 选择推荐插件安装,插件安装时,虚拟机配置了http_proxy代理上网
  6. 创建管理员用户
  7. 进入Jenkins系统

安装后界面:并成功安装了所有推荐插件;

image-20201207162320835

Jenkins用yum源安装

官方介绍:https://www.jenkins.io/doc/book/installing/linux/#long-term-support-release-3

插件管理

Jenkins所有功能,都是依赖插件实现,系统管理-》插件管理可以管理插件,安装、更新等,高级界面可以手动上传离线的插件包.hpi格式,可以设置插件代理

image-20201207163643967

Jenkins升级

升级Jenkins,对于rpm包的安装方式,下载需要升级的war包,然后放置到/usr/lib/jenkins目录下即可,然后重启Jenkins即可完成升级;

updatedupdated2020-12-082020-12-08
加载评论