基于Jenkins的CI/CD流程
前文《云原生:DevOps理念下的CI/CD究竟是指什么?》介绍了持续集成和持续交付的基本概念,Jenkins是CI/CD流程的核心。
基于Jenkins的CI流程:开发push代码到gitlab,触发Jenkins自动pull代码,通过maven编译、打包,然后执行shell脚本构建docker镜像,并将镜像push到容器镜像仓库。
基于Jenkins的CD流程:当需要部署服务时,Jenkins服务器上再执行SSH命令登录到部署服务器,从镜像仓库中拉取镜像文件,启动容器,完成整个部署流程。
本文重点介绍Jenkins服务器的安装过程。
准备工作
安装git,用于从Gitlab上拉取代码。
yuminstall -y git
安装sshpass,一个免交互的SSH登录工具,用于登录Slave节点。
yuminstall -y sshpass
安装wget,下载工具,用来下载axel。
yuminstall -y wget
安装多线程下载工具axel,下载jenkins用到。
wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/a/axel-2.4-9.el7.x86_64.rpmrpm -ivh axel-2.4-9.el7.x86_64.rpm
安装rsync,文件同步工具。
yuminstall rsync
创建项目测试时会用到的日志目录
mkdir -p /data/logs/mall
配置Docker镜像仓库地址
在需要上传或下载镜像的服务器上,机器所在的docker环境都需要配置私有镜像仓库地址,构建服务器要上传镜像、应用部署服务器要下载镜像。
# 修改daemon.json
vim/etc/docker/daemon.json
#在原有配置基础上,加上如下内容:
{ “registry-mirrors”: [“https://xxx.mirror.aliyuncs.com”], #阿里云镜像加速”insecure-registries”:[“192.168.0.123”] #私有镜像仓库}
添加完重启docker
systemctldaemon-reloadsystemctlrestart docker
下载安装Jenkins
下载jenkins安装包。
axel -n 20http://mirrors.jenkins-ci.org/war/2.327/jenkins.war
启动jenkins。
java -jar jenkins.war –httpPort=8888
如果是自有机房,关闭防火墙。如果是云服务器,则配置端口放行。
systemctlstatus firewalldsystemctlstop firewalld
修改jenkins配置,用于插件站点更新,加速联网。
vim ~/.jenkins/hudson.model.UpdateCenter.xml
将XML内的url的值替换为:
http://mirror.xmission.com/jenkins/updates/update-center.json
访问Jenkins
浏览器访问jenkins,提示输入密码,根据页面提示查看密码的方式获取密码并登录,一般用cat命令查看。
cat/root/.jenkins/secrets/initialAdminPasswordcat/data/jenkins_data/secrets/initialAdminPassword
密码输入正确后提示插件的选择,可以直接忽略跳过即可看到首页
Jenkins首页
页面左上角jenkins->people->admin->configure进行修改管理员密码。修改完后,跳转到登录页,输入用户名密码即可正常登录。
Jenkins开机自启动
首先实现用脚本来启动Jenkins,然后再把启动脚本添加到/etc/rc.d/rc.local 中,这个文件是系统启动加载文件。
(1)切换到root 用户下。
suroot
(2)创建jenkins新的工作目录。
mkdir /data/jenkins_data
(3)通过脚本启动。
cd/rootvimjenkins.sh
(4)编辑脚本内容。
#!/bin/bashexportJAVA_HOME=/usr/local/java/jdk1.8.0_261/ exportJENKINS_SERVER_PATH=/root exportJENKINS_HOME=/data/jenkins_data cd${JENKINS_SERVER_PATH}nohup java -jar jenkins.war –httpPort=8888 >jenkins.log 2>&1 &
(5)添加脚本执行权限。
chmod+xjenkins.sh
退出root用户。
exit
(6)设置开机执行:
vim /etc/rc.d/rc.local
在文件最后添加如下启动命令:
suroot -c “/root/jenkins.sh”
检查 shell脚本是否可以正常工作。关闭jenkins, 执行:
suroot -c “/root/jenkins.sh”
看jenkins是否能启动 。
(7)如没有问题,添加启动加载文件的执行权限。
chmod +x /etc/rc.d/rc.local
(8)重启服务器,注意这是高危操作, 执行前要确保没有严重后果。
reboot
重启完再次访问jenkins,发现启动成功。
这样我们就完成了Jenkins构建服务器的安装,接下来可以配置CI/CD的流程了。