0、关于CI/CD
至于为什么需要CI/CD这里不在赘述,可百度。简单讲一下什么是CI/CD。
持续集成(Continuous integration,简称CI)
持续集成指的是,频繁地(一天多次)将代码集成到主干或者共享分支。持续集成的目的就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码在本地测试验证通过后,提交,触发一条流水线,进行自动化测试。只要一个测试用例失败,就不能集成。
持续交付(Continuous Delivery,简称CD)
持续交付可以让我们拥有一个可以随时部署的代码库;它实际是CI的扩展,在持续集成的流程之后,引入更为复杂的测试流程(如功能测试),即部署到测试服务器上,测试人员介入,进行测试环接,过程中测试人员会进行反馈,如果测试不通过则开发人员介入进行修正。
有的开发公司,除了生产环境与测试环境,还有一个预生产环境,预生产环境尽可能模拟生产环境,在通过测试环境后,还需要通过预生产环境的测试。这样新增的变更代码才会被认为在生产环境下可用;
在流程的最后,我们可以得到新的可用于部署到生产环境的代码压缩包或者打了标签的Docker镜像,这也就是用于交付的内容。
持续部署(Continuous Deployment,简称CD)
持续部署是持续交付的延伸,在持续交付的流程后加入自动部署的环节。也就是说,如果你完整的实现了持续集成、持续交付后,你的代码变更会一般会在数分钟之内部署到生产环境(理想情况下)。
1、Jenkins安装
这篇文章https://www.jianshu.com/p/ebd7e8724cc5有介绍wind/Linux/docker三种安装方式。这里是Linux安装Jenkins
Step1:首先你得有个机器,机器要求256MB内存,10G硬盘空间
检查:
# cat /proc/meminfo (看内存)
# df -h
Step2:Linux安装Jenkins环境准备。Jenkins是依赖于java环境运行,所以必须安装java环境。
此处选择离线安装(快)
下载jdk8(Jenkins官网说要jdk8),好像其他高版本也没问题。
链接:https://pan.baidu.com/s/1_0RsdC0R9Ea9cRcQECnWbw
提取码:62ou
将jdk-8u191-linux-x64.tar.gz上传至/usr/local,解压
# tar -zxvf jdk-8u191-linux-x64.tar.gz
解压后配置环境变量:
vi /etc/profile
配置为:
export JAVA_HOME=/usr/local/jdk1.8.0_191 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
按Esc键 输入:wq 保存并退出
让配置文件生效:
# source /etc/profile
检查:
# java -version
若出现jdk版本号,则安装并配置环境变量成功
如果提示命令找不到的话,查看一下jdk的配置路径是否错误。
删除安装包(可选):rm -rf jdk-8u191-linux-x64.tar.gz
step3:tomcat安装(离线安装)
上传安装包到/usr/local下,解压
链接:https://pan.baidu.com/s/1y9Br-hY1bNZIF2XgCVBu2Q
提取码:wimq
# tar -zxvf apache-tomcat-9.0.8.tar.gz
启动tomcat:
# cd /usr/local/apache-tomcat-9.0.8/bin # ./startup.sh
浏览器输入IP:8080
如果网页看不了,原因一般有以下:
1)端口被占用,可以查看8080端口是否被占用,如果被占用,能杀死占用进程就杀,杀不了就改tomcat默认端口。
2)用阿里云主机时,还发现云主机有安全组,安全组做了限制。
Step4:安装Jenkins
这里用war包方式安装,先去Jenkins官网下载;
下载后放入Linux主机的/usr/local/apache-tomcat-9.0.8/webapps下,有三种启动方式:
1)官网推荐
# java -jar jenkins.war --httpPort=18080 (默认是8080。此处8080被占用,改为18080)
看到最后这个running,表示成功。
选择【安装推荐的插件】,静静等待。
创建用户名、密码等信息。
【实例配置】不需动,直接点【保存并完成】
2)安装或启动方式2(推荐):
# nohup java -jar jenkins.war --httpPort=18080 &
方式1启动,在关闭控制台或者ssh断开服务器链接后 jenkins也就自动关闭了
方式2启动后 会生成一个nohup.out输出,需要的话,可以实时查看jenkins日志.
# tail -f nohup.out
后面在网页输入IP+端口操作一样;
3)方式3,启动tomcat,然后访问tomcat:http://IP:18080/jenkins
后面在网页输入IP+端口操作一样;
检查Jenkins是否启动:
# ps -ef | grep jenkins