Jenkins 部署与使用

Jenkins 部署与使用

Jenkins 介绍

Jenkins是一款开源的自动化服务,多插件,可用于自动执行与构建,测试和交付或部署软件有关的各种任务。

常见代码部署方式

#蓝绿部署:
   蓝绿部署指的是不停老版本代码(不影响上一个版本访问),而是在另外一套环境部署新版本然后进行测试,测试通过后将用户流量切到新版本,其特点为业务无中断,升级风险相对较小
   
#金丝雀发布:
   金丝雀发布也叫灰度发布,是指在黑与白之间,能够平滑过渡的一种发布方式,灰度发布是在原有版本可用的情况下,同时部署一个新版本应用作为“金丝雀”(小白鼠),测试新版本的性能和表现,以保障整体系统稳定的情况下,尽早发现、调整问题。

#滚动发布:
   滚动发布,一般是取出一个或者多个服务器停止服务,执行更新,并重新将其投入使用。周而复始,直到集群中所有的实例都更新成新版本。
   
#A/B 测试:
   A/B 测试也是同时运行两个APP环境,但是蓝绿部署完全是两码事,A/B 测试是用来测试应用功能表现的方法,蓝绿部署的目的是安全稳定地发布新版本应用,并在必要时回滚,即蓝绿部署是一套正式环境环境在线,而A/B测试是两套正式环境在线

部署web架构

#规划:
10.0.0.3   gitlab服务器
10.0.0.13  jenkins服务器
10.0.0.7   haproxy服务器
10.0.0.8   10.0.0.18   10.0.0.28  tomcat服务器

#tomcat服务器部署
useradd www -u 2020
yum install java-1.8.0-openjdk -y
tar xvf apache-tomcat-8.5.53.tar.gz -C /opt/
ln -s /opt/apache-tomcat-8.5.53/ /opt/tomcat
echo PATH='/opt/tomcat/bin/:$PATH' > /etc/profile.d/tomcat.sh
. /etc/profile.d/tomcat.sh
mkdir /data/tomcat/webapps -pv
vim /opt/tomcat/conf/server.xml
  <Host name="localhost" appBase="/data/tomcat/webapps" unpackWARs="true" autoDeploy="true"> 
mkdir /data/tomcat/webapps/myapp
echo IP地址 > /data/tomcat/webapps/myapp/index.html
chown -R www.www /data/tomcat/ /opt/tomcat/
su - www -c "catalina.sh start"
curl 10.0.0.8:8080/myapp/index.html

#haproxy部署
yum install readline-devel gcc openssl-devel pcre-devel systemd-devel -y
tar xvf lua-5.3.5.tar.gz -C /opt/
cd /opt/lua-5.3.5/
make linux test
src/lua -v
tar xvf haproxy-2.1.4.tar.gz  -C /opt/
cd /opt/haproxy-2.1.4/
make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_LUA=1 LUA_INC=/opt/lua-5.3.5/src/ LUA_LIB=/opt/lua-5.3.5/src/
make install PREFIX=/opt/haproxy
ln -s /opt/haproxy/sbin/haproxy /usr/sbin/
haproxy -v
useradd -r -s /sbin/nologin haproxy -d /var/lib/haproxy
mkdir /etc/haproxy /var/lib/haproxy
chown -R haproxy.haproxy /var/lib/haproxy/
vim /etc/haproxy/haproxy.cfg
listen stats
  bind 0.0.0.0:9999
  stats enable
  log global
  stats uri  /status
  stats auth  admin:123456
listen web_8080
  bind 10.0.0.7:8080
  log global
  server 10.0.0.8  10.0.0.8:8080  check inter 3s fall 2 rise 3
  server 10.0.0.18 10.0.0.18:8080 check inter 3s fall 2 rise 3
  server 10.0.0.28 10.0.0.28:8080 check inter 3s fall 2 rise 3
vim /lib/systemd/system/haproxy.service
...
vim /etc/sysctl.conf
sysctl -p
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
systemctl daemon-reload 
systemctl start haproxy
#浏览器访问http://10.0.0.7:9999/status
#浏览器访问http://10.0.0.7:8080/myapp/

Jenkins 概念

Jenkins是一款开源 CI&CD 软件,基于Java开发的一种持续集成工具,用于自动化各种任务,包括构建、测试和部署软件

Jenkins 服务器部署
https://mirrors.tuna.tsinghua.edu.cn/jenkins/ #下载地址

wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/debian/jenkins_2.222_all.deb
apt install -y daemon openjdk-8-jdk
dpkg -i jenkins_2.222_all.deb
dpkg -L jenkins
vim /etc/default/jenkins
  JENKINS_USER=root
  JENKINS_GROUP=root
systemctl restart jenkins
#浏览器访问http://10.0.0.13:8080/

vim /var/lib/jenkins/hudson.model.UpdateCenter.xml  #可改为国内地址

Jenkins 插件管理

手动安装插件Role-based
1,去清华大学下载需要的插件role-strategy.hpi
2,插件管理,上传下载的插件

自动安装插件
1,插件管理
2,搜索插件,安装插件

Jenkins 邮箱配置

1,生成 QQ 邮箱登录授权码 qxstmklncdicdagh
2,配置jenkins管理员邮箱,系统配置,邮件通知
     系统管理员邮件地址: 18559002373@163.com
     SMTP server:smtp.qq.com
     用户: 3483663354@qq.com
 	 密码: qxstmklncdicdagh
 	 SMTP端口: 465
 	 Reply-To Address: 3483663354@qq.com
3,测试发送

Jenkins 任务管理

1,新建任务
2,丢弃旧的构建,保留30天,保留10个
3,源码管理
4,构建: 执行shell命令
5,构建后操作: mail等
6,立即构建测试

创建基于ssh key拉取代码

#jenkins服务器配置
ssh-keygen  #生成公钥
cat /root/.ssh/id_rsa.pub  #复制公钥
gitlab web界面设置中添加 ssh密钥   #粘贴公钥
git clone git@10.0.0.3:root/service.git  #此时已经完成免密码克隆

#配置jenkins 到 gitlab非交互拉取代码
cat /root/.ssh/id_rsa   #复制私钥
1,jenkins凭据,添加全局凭据,ssh-key,用户名:root,key:粘贴
2,创建任务
3,丢弃旧的构建,保留30天,保留10个
4,源码管理: Git,URL:git@10.0.0.3:root/service.git
5,构建后操作: 发送邮件 18559002373@163.com
6,立即构建测试
cat /var/lib/jenkins/workspace/jenkins-web3/index.html   #已实现非交互拉取代码

#将代码全部部署到后端web服务器
passwd www    #后端服务器用户设置密码
ssh-copy-id www@10.0.0.18    #jenkins与后端服务器做免密钥登录
vim  /var/lib/jenkins/jenkins-tomcat.sh
 #!/bin/bash 
 cd /var/lib/jenkins/workspace/jenkins-web3/
 ssh www@10.0.0.8 "catalina.sh stop && rm -rf /data/tomcat/webapps/myapp/*"
 ssh www@10.0.0.18 "catalina.sh stop && rm -rf /data/tomcat/webapps/myapp/*"
 ssh www@10.0.0.28 "catalina.sh stop && rm -rf /data/tomcat/webapps/myapp/*"
 scp -r ./* www@10.0.0.8:/data/tomcat/webapps/myapp/
 scp -r ./* www@10.0.0.18:/data/tomcat/webapps/myapp/
 scp -r ./* www@10.0.0.28:/data/tomcat/webapps/myapp/
 ssh www@10.0.0.8 "catalina.sh start"
 ssh www@10.0.0.18 "catalina.sh start"
 ssh www@10.0.0.28 "catalina.sh start"
 
chmod a+x /var/lib/jenkins/jenkins-tomcat.sh
web界面
1,修改任务jenkins-web3
2,源码管理: Git,URL:git@10.0.0.3:root/service.git
3,构建: 执行shell命令: bash /var/lib/jenkins/jenkins-tomcat.sh
4,构建后操作: 发送邮件 18559002373@163.com
5,构建即可,查看终端输出,已部署完成
#浏览器访问负载均衡服务器:http://10.0.0.7:8080/myapp/

企业代码回滚

vim  /var/lib/jenkins/jenkins-tomcat-huigun.sh
 #!/bin/bash
 cd /var/lib/jenkins/workspace/jenkins-web4/
 git reset --hard HEAD^
 ssh www@10.0.0.8 "catalina.sh stop && rm -rf /data/tomcat/webapps/myapp/*"
 ssh www@10.0.0.18 "catalina.sh stop && rm -rf /data/tomcat/webapps/myapp/*"
 ssh www@10.0.0.28 "catalina.sh stop && rm -rf /data/tomcat/webapps/myapp/*"
 scp -r ./* www@10.0.0.8:/data/tomcat/webapps/myapp/
 scp -r ./* www@10.0.0.18:/data/tomcat/webapps/myapp/
 scp -r ./* www@10.0.0.28:/data/tomcat/webapps/myapp/
 ssh www@10.0.0.8 "catalina.sh start"
 ssh www@10.0.0.18 "catalina.sh start"
 ssh www@10.0.0.28 "catalina.sh start"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值