本次分享大纲
- 分享有关CI & CD的一些基本概念。让大家有个基本想法
- 一些基本概念的想法
- 实操
- 购买域名 服务器
- 搭建服务器 linux系统命令行操作
- 部署持续集成环境
涉及相关知识: linux shell命令 nginx配置 tomcat环境配置 java环境配置 服务器绑定域名
基本概念
1.GitFlow
GitFlow 是一个抽象概念,它围绕着软件的发布周期来定义各分支的协作、合并、组织等管理策略。我们GitFlow
2. 持续集成CI(Continuous Integration,缩写 CI)
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。 每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
持续集成是一种工作实践,它要实现的效果是每次代码的变更,都能触发一系列自动化操作,包括编译、测试等环节,一天可以进行多次。
3. 持续交付(Continuous Delivery,缩写 CD)
在 CI 的基础上,CD 要实现的是具备随时发布上线的能力,通常指的是代码修改后,能自动化地推送到测试环境上。 频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。
4. 持续部署(Continuous Deployment,缩写也是 CD)
持续部署更进一步,能实现随时自动化地部署到生产环境上。
总结

实操
1. 购买域名 服务器 (阿里云 腾讯云)
2. 搭建服务器 域名绑定服务器
3. 部署持续集成环境
- linux shell 命令
ssh -p 28450 root@144.34.151.57
yum update
wget tomcatUrl
tar -xzvf apache-tomcat-8.5.23.tar.gz -C /usr/local/
source /etc/profile
下面还有一些简单命令
安装java环境
- 查看是否有java环境
java -versionoutput 输出
java version "1.7.0_25"
Open JDK Runtime Environment (rhel-2.3.10.4.el6_4-x86_64)
Open JDK 64-Bit Server VM (build 23.7-b01, mixed mode)
则java环境没问题
1. 配置java环境
- 安装JDK 使用解压安装,不然找不到JAVA_HOME地址
- 卸载之前JDK
# 查看是否安装Java
java -version
# 查看Java的安装包信息
rpm -qa | grep java
# 卸载原装Java,<java_package>为查找到的安装包信息
rpm -e --nodeps <java_package>
- 使用wget url命令下载自己想要的JDK 解压 安装
# 创建安装目录
mkdir -p /usr/local/java
# 下载
wget Url #https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz
# 解压
tar -xzvf jdk-8u151-linux-i586.tar.gz
注意: 下载JDK有一个问题 如果直接用wget 连接网址 下载下来的JDK是无法通过的 前面还要加一段命令 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" download.oracle.com/otn-pub/jav…

- 配置环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_151 # 自己安装JDK的版本号
export CLASSPATH=.:$JAVA_HOME/lib/tool.jar:$JAVA_HOME/lib/dt.jar
export PATH=$PATH:$JAVA_HOME/bin
3. 下载tomcat 配置tomcat环境 开机启动
- tomcat安装
- 安装
wget tomcatUrl
tar -xzvf apache-tomcat-8.5.23.tar.gz -C /usr/local/java
- 配置Tomcat的环境变量 在 / etc / profile文件后再追加一条TOMCAT的环境变量
# 在/etc/profile文件末尾追加TOMCAT的环境变量
export CATALINA_HOME=/usr/local/java/apache-tomcat-8.5.23
- 配置开机启动 配置服务
- 将上述tomcat中的catalina.sh复制到 / etc / init.d / 并命名为tomcat
cp /usr/lib/tomcat/apache-tomcat-9.0.16/bin/catalina.sh /etc/init.d/tomcat9
chmod 755 /etc/init.d/tomcat7
接着对拷贝的脚本进行修改, 添加chkconfig和description两行注释, 同时加上JAVA_HOME和CATALINA_HOME声明
#chkconfig: 2345 10 90
#description: tomcat8 service
export JAVA_HOME=/software/jdk1.7.0_51
export CATALINA_HOME=/software/apache-tomcat-7.0.55
使用chkconfig - add tomcat7 将其添加为服务
chkconfig --add tomcat7
配置开机启动
chkconfig tomcat7 on
配置防火墙打开80端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
/etc/init.d/iptables save
service iptables restart
一些细节问题
1.JAVA_HOME, JRE_HOME,CLASS_PATH,PATH四个环境变量一定要确认无误(我就是在这翻车了)。 2.RH - Firewall - 1 - INPUT 表示进出规则在一个链上。(我参照22端口的设置做,第二次翻车) 3.【chkconfig: 2345 10 90】 2345表示系统运行级别是2,3,4或者5时都启动此服务,20,是启动的优先级,80是关闭的优先级,如果启动优先级配置的数太小时如0时,则有可能启动不成功,因为此时可能其依赖的网络服务还没有启动,从而导致自启动失败。 4.在配置服务时要再一次配置环境变量,因为原有的profile的环境变量在此处不会生效。 5.配置启动服务的环境变量时要加上CATALINA_HOME指向tomcat文件夹根目录。
jenkins 安装
-
下载 jenkins.war 包 拷贝到tomcat webapps目录中

-
重启tomcat

-
http://144.34.151.57:8088/jenkins/login?from=%2Fjenkins%2F

nginx 用来做代理
来个简单的
server {
listen 80;
server_name www.fezlx.xyz;
location / {
root: html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
如果需要访问跟目录 root目录的静态资源 一定要给nginx权限 ** user toot ** 配置到nginx.conf最顶端 这样就可以简单配置一个web服务器 绑定服务器端口 绑定域名 绑定服务器静态资源
** 弄一个 一个nginx服务器绑定多个域名 访问多个资源 **
upstream mysvr {
server 127.0.0.1:3009;
}
upstream hodorsvr {
server 127.0.0.1:4000;
}
server {
listen 80;
server_name mysite.fezlx.xyz;
location / {
proxy_pass http://mysvr;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name www.fezlx.xyz;
location / {
proxy_pass http://hodorsvr;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 4000;
server_name localhost;
location / {
proxy_pass http://hodorsvr;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 3009;
server_name localhost;
location / {
proxy_pass http://hodorsvr;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
/usr/local/webserver/nginx/sbin/nginx -t
重启nginx
/usr/local/webserver/nginx/sbin/nginx -s reload
jenkins 关联 gitlab
- jenkins 安装 gitlab插件
用来关联持续集成git项目的插件

- 服务器安装git 进行配置
- 安装git 查看教程
- 系统管理 --> 全局工具配置 ---> git 配置

- 新建任务 并对其进行配置
- 创建任务

- 关联需要持续集成的git项目

- 生成jenkinspost请求 与token

- gitlab关联jenkinspost请求

- 创建任务
然后提交代码 项目就可以通过你的配置自动构建了