概述
(六)和(七)已经初步构建完成IDEA+Gitlab+Jenkins的CI/CD基础环境,但真实的开发项目开发环境是不止一个生产环境的。本实验项目基于Scrum模式,团队假设分为Team Leader(PO),DV(developer)和QA(测试人员),暂时规划将CI/CD的基础环境分割成UAT环境和PRD环境。
- UAT环境:Gitlab(UAT branch),Jenkins(Doorweb-UAT project),Apache Httpd(192.168.1.105:8070);
- PRD环境:Gitlab(Master branch),Jenkins(Doorweb project),Apache Httpd(oracle cloud);
UAT环境
1、在Gitlab中,选择Project(http-doorweb)——Repository——Branches——new branch
填写Branch name为UAT,create from Master。
2、在192.168.1.105(和jenkins同一个服务器)上安装apache httpd
sudo yum install httpd
systemctl start httpd
systemctl status httpd
修改httpd.conf的Listen 80 为Listen 8070,
DocumentRoot "/var/www/html"
3、前往Jenkins,在Dashboards中选择new item,item name为Doorweb-UAT,选择Freestyle project,copy from Doorweb。
点击OK,进入配置界面
-
Repository URL:保持和Doorweb一样,http://192.168.1.105/gitlab/Jie/http-doorweb.git
-
Branch Specifier:改为*/UAT
-
Build triggers:Allowed branches,限制为UAT
-
Secret token:点击generate,生成一个新的token
-
Build:选择shell script。
CODE_DIR=/var/lib/jenkins/workspace/Doorweb
WEB_DIR=/var/www
TIME=`date +%F-%H-%M-%S`
cd $CODE_DIR && tar zcf /tmp/web-${TIME}.tar.gz ./*
mv /tmp/web-${TIME}.tar.gz $WEB_DIR
cd $WEB_DIR && mkdir web-$TIME
cd $WEB_DIR && mv ./html/* web-$TIME
cd $WEB_DIR && tar xf web-${TIME}.tar.gz -C html && rm -rf web-${TIME}.tar.gz
点击save
4、返回Gitlab,在setting——webhook中,填写刚才Jenkins中生成的Doorweb-UAT的信息
在push events中填写UAT,点击save changes。
5、在IDEA中,check out UAT branch,CI/CD的UAT环境配置完成,可以尝试从IDEA做些修改,commit and push,检查UAT的web是否自动更新。
PRD环境
(七)中已经基本配置完成PRD环境,参考UAT环境,修改各个环节,注意是master branch。
下一章将会将JIRA引入整个项目开发实验体系中。