1、jenkins服务器和各节点服务器之间,要配置基于密钥的登录 (本实例基于www用户)
(省略)
2、创建相应的目录,并授权属主属组为www用户
/deploy/tmp 临时目录
/deploy/tar 存放打包后的目录
/opt/wwwroot 远程服务器目录
/web/ 网站目录
3、配置jenkins
![](https://box.kancloud.cn/be5ceec23de2d45ff19ca128cd0a2add_972x413.png)
![](https://box.kancloud.cn/19d29d5194499acff551ada991ca5d46_1033x511.png)
![](https://box.kancloud.cn/259033444b4b999fdea37f85fbb85ca3_983x379.png)
构建成功后,创建一个tag,并传送到git服务器上
![](https://box.kancloud.cn/485a9a871181f327691762b6eabd16a3_1122x581.png)
4、编写Deploy和回滚脚本
[www@jenkins scripts]$ cat Deploy1.sh
#!/bin/bash
SrcDir="/var/lib/jenkins/workspace/test_yyg"
DeployCode="/deploy/tmp"
DstDir="/opt/wwwroot"
WebSite="/web/"
PRONAME="test_yyg"
if [ $# == 1 ];then
Ver_NUM=$(echo $1)
cd $SrcDir
if [ ${Ver_NUM} == 'latest' ];then
#版本回退到上一个版本
git reset --hard HEAD^
COMMITID="$(git rev-parse --short HEAD)"
ssh www@10.2.11.245 "rm -rf /web/${PRONAME} && ln -s /opt/wwwroot/${PRONAME}-${COMMITID} /web/${PRONAME}"
else
#版本回退到任意版本,请输入版本COMMITID
git reset --hard ${Ver_NUM}
ssh www@10.2.11.245 "rm -rf /web/${PRONAME} && ln -s /opt/wwwroot/${PRONAME}-${Ver_NUM} /web/${PRONAME}"
fi
else
cd $SrcDir && git pull
COMMITID="$(git rev-parse --short HEAD)"
#把版本库里获取的代码,拷贝一份到部署目录里,并且重命名这个项目(按照项目名-commitID号),并且把不要的目录删除掉,比如.git
PKGNAME="${PRONAME}-${COMMITID}"
cp -rf ${SrcDir} ${DeployCode}/ && cd ${DeployCode} && mv ${PRONAME} ${PKGNAME}
cd ${DeployCode}/${PKGNAME} && rm -rf .git
cd ${DeployCode} && tar zcf ${PKGNAME}.tar.gz ${PKGNAME}
#通过scp命令,把对应的目录拷贝到远程计算机中
scp -r ${DeployCode}/${PKGNAME}.tar.gz www@10.2.11.245:${DstDir}/
ssh www@10.2.11.245 "cd ${DstDir} && tar xf ${PKGNAME}.tar.gz"
#通过ssh远程连接到10.2.11.245服务器,创建软连接
ssh www@10.2.11.245 "rm -rf /web/${PRONAME} && ln -s /opt/wwwroot/${PKGNAME} /web/${PRONAME}"
fi
- 第一章:Jenkins的基本介绍
- 第二章:Jenkins服务器安装
- 第一节:在Centos6.8系统上安装Jenkins服务器
- 第三章:Jenkins服务器配置
- 第一节:jenkins更换初始登录密码
- 第二节:全局工具配置
- 第三节:安装插件
- 第四节:jenkins中配置git
- 第五节:jenkins中配置Publish Over SSH
- 第六节:jenkins邮件配置
- 第七节:Jenkins进阶-获取git tags代码
- 第八节:Jenkins权限配置错误,导致无法登录
- 第九节: jenkins通过钉钉发送消息
- 第四章:使用 Sonar 进行代码质量管理
- 第一节:sonar概述
- 第二节:Sonar的安装
- 第三节:sonar安装插件
- 第四节:sonar报错
- 第五节:代码分析
- 第五章: 持续集成
- 第一节:GitLab触发jenkins构建项目
- 第六章:jenkins 2.0 pipeline 从入门到精通
- 第一节:jenkins2 hello pipeline
- 第二节:jenkins pipeline基本概念
- 第七章:jenkins部署实战
- 第一节:jenkins部署php代码(一)
- 第二节:jenkins部署java代码(一)
- 第三节:jenkins部署java代码(pom.xml)二
- 第四节:jenkins部署php代码(根据tags)
- 第五节:jenkins部署android代码
- 第八章:jenkins项目构建配置
- 第一节: jenkins参数化构建过程