持续集成体系介绍
1. 什么是持续集成?
频繁地(一天多次)将代码集成到主干
2. 持续集成测试带来的有点
快速发现错误:每完成一点更新,就集成到对应的分支,可以快速发现错误,定位错误也比较容易
防止分支大幅偏离主干:如果不是经常集成,分支或者主干又在不断更新,会导致以后集成的难度变大,甚至难以集成
3. 持续集成流程-CI
检测代码变动->自动构建编译->自动测试->自动打包
4. CI(持续集成),CD(持续交付),CD(持续部署)
Continuous Integration :develop->build->test
Continuous Delivery:develop->build->test->release
Continuous Deployment:develop->build->test->release->deploy to production
5. 持续集成工具-Jenkins
Jenkins的优势:
开源,历史悠久
超大量的安装数目
超丰富的插件支持
几乎支持所有的source control management和Version control management tools
Jenkins搭建部署
docker部署
#首先拉取jenkins镜像
docker pull jenkins/jenkins:lts #lts是jenkins的版本不是参数
#创建docker的文件映射卷
docker volume create jenkins_test
#查看是否有jenkins的文件卷
docker volume inspect jenkins_test
[
{
"CreatedAt": "2020-08-31T17:01:40+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/jenkins_test/_data",
"Name": "jenkins_test",
"Options": {},
"Scope": "local"
}
]
#创建实例 docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_test:/var/jenkins_home jenkins/jenkins:lts
#8080是jenkins对外服务的端口,50000端口是jenkins的slave连接主服务器时用的
#查看jenkins的状态
docker ps
#查看jenkins容器的运行日志
docker logs adf7b210a3b2
#jenkins启动起来后,浏览器访问8080端口要求输入初始密码
#获得初始管理员密码 docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
docker run命令运行以及参数详解 https://www.cnblogs.com/mypath/articles/10102033.html
手动部署:java -jar jenkins.war
正式部署:
调参:调增jvm的参数
应用容器:使用tomcat, jetty启动
反向代理:使用nginx设置域名、https
jenkins job管理
修改系统配置
Manage Jenkins
默认shell:bash
默认邮箱:邮箱地址与账户
默认地址:服务器域名
安全:设置安全制度
时区:时区修改
#删除已有实例 docker rm -f jenkins #重新创建实例并设置时区 docker run -d -name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_test:/var/jenkins_home -e JAVA_OPTS=-Duser.timezone=Aisa/Shanghai jenkins/jenkins:lts
#重启jenkins
docker restart jenkins
插件:设置代理、安装插件、更新插件
在Advanced里面添加代理下载插件,在available里安装
slave节点:添加slave节点
Manage Jenkins->System configure->Manage Nodes and Clouds->New Node
jenkins节点管理
jenkins的任务可以分布在不同的节点上运行
节点上需要配置java运行时环境,java_version>1.5
节点支持Windows,Linux,Mac
Jenkins运行的主机在逻辑上是master节点
启动方式:
Linux--Launch agents via SSH
Windows--Launch agents via Java Web
原文:https://www.cnblogs.com/jaigejiayou/p/13590948.html