什么是持续集成
国内开发方式:敏捷(快速)开发,例如京东、天猫活动
开发:一天快速迭代开发,测试同步跟进
测试拿到开发代码(新版本),快速部署
以上开发测试模式为持续集成
官方定义:CI(continuesly Integration)在一个系统上频繁的将代码集成发布
现状:开发负责新版本代码,测试负责发布和测试
为什么要持续集成
- 应对一天内频繁发布达到敏捷开发和测试
- 熟悉互联网行业工作流程
怎样持续集成
解决方案:工具链:Linux+版本控制工具+gitlab(gitee)+jenkins(集成各类工具)+web服务(nginx,Tomcat)+MySQL
使用持续集成方式发布PHP项目和Java项目
持续集成架构(重点)
代码托管仓库不适用码云,使用gitlab:码云依赖公网(不安全+依赖网络),gitlab是局域网解决方案(运维搭建)
web服务(一类软件的统称):
处理来自客户端的请求,连接数据库进行验证读取网站的发布路径中的网页响应给浏览器
如:nginx:处理PHP(中小公司,特点是简单,性能偏弱)项目web服务
Tomcat:处理Java(大型互联网,比较复杂,性能强)项目的web服务
持续集成环境
gitlab
- 仓库没有任何代码时代码提交
仓库地址
提交代码(首次提交会弹出用户名密码验证)
2. 仓库有代码
clone到本地再提交
$ git clone http://ip/yayaya/code.git
$ cd code
$ git add .
$ git commit -m "first commit"
$ git remote add origin http://ip/yayaya/code.git
$ git push -u origin master
jenkins
jenkins拉取gitlab上的代码
- 声明jenkins示例地址(gitlab找jenkins)
- jenkins增加凭据(jenkins访问gitlab)
- http验证方式
jenkins访问Gitlab的安全依据(用户名密码)
用gitlab 的用户名密码
2.ssh方法
生成公钥和私钥
- http验证方式
ssh-keygen -t rsa
查看公钥
cat id_rsa.pub
将公钥给gitlab
将私钥交给Jenkins
cat id_rsa
- 在jenkins里创建项目拉代码(http)
jenkins项目类型:1. Freestyle(自由风格:通过配置的方式) 2.pipeline(流水线项目:通过语言脚本)
成功将代码拉取
4. ssh方式拉取
git@192.168.175.128:yayaya/code.git
在Jenkins里面创建项目,准备ssh方式拉代码
此处报错解决方法
成功拉取
Jenkins发布PHP项目
第一个阶段:代码拉取阶段
拿到开发最新代码—推送到gitlab—Jenkins拉下来
第二个阶段:web发布PHP项目阶段
准备:一套运行的PHP环境(nginx+数据库服务mysql+PHP-fpm(软件代码翻译html))
Jenkins将上一步代取的代码交给nginx(发布目录/usr/share/nginx/html)
每次访问网站其实就是访问web服务的过程
代码拉取阶段
创建gitlab仓库
仓库地址:git@192.168.175.128:yayaya/0326php.git
将开发项目推送到git上
解压项目
右键git bash here
详细操作介绍
看到代码
Jenkins上创建项目
流水线:通过脚本方式拉取代码和发布工作
脚本:Groovy模块化语言----pipeline流水线模板
修改模板
将Jenkins交给网站发布路径
Linux创建路径
web发布阶段
启动php-fpm
systemctl restart php-fpm
启动niginx
先传输nginx.conf
mv /root/nginx.conf /etc/nginx/nginx.conf
cat查看会找到端口号和路径
网站发布路径拥有者为apache用户
chown -R apache /usr/share/nginx/html/www.ex.com
启动nginx
nginx
启动mysql数据库(docker启动)
docker ps -a #查看进程
docker start#启动mysql
再修改wp-config修改数据库账号密码
再用数据库连接虚拟机,创建wordpress数据库
再次提交代码,build now