Jenkins安装配置回滚
安装(ubuntu环境)
安装java环境
sudo apt-get install openjdk-8-jdk
安装jenkins
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
Jenkins常用命令
查看Jenkins状态:
sudo service jenkins status
启动Jenkins:
sudo service jenkins start
停止Jenkins:
sudo service jenkins stop
重启Jenkins:
sudo service jenkins restart
配置Jenkins
1、打开 ip:8080 进行开始配置,管理员密码可以通过下面方式获取:
cat /var/lib/jenkins/secrets/initialAdminPassword
2、按建议的方式安装插件
创建工程(示例)
1、填写基本信息
2、参数化配置,用于部署和回滚
3、源码(从github获取)
4、构建触发器,github收到push事件后,通过webhook通知jenkins(需要在github上配置webhook),触发构建
github上的配置:
5、构建脚本
根据选项进行Deploy或Rollback
case $Status in
Deploy)
echo "Status:$Status"
path="${WORKSPACE}/bak/${BUILD_NUMBER}" #创建每次要备份的目录
if [ -d $path ];
then
echo "The files is already exists "
else
mkdir -p $path
fi
pwd
if [ -f "xxx.tar.gz" ];then
rm xxx.tar.gz
fi
tar -zcvf xxx.tar.gz ./*
cp -f xxx.tar.gz $path #将打包好的文件备份到相应目录,覆盖已存在的目标
echo "Completing!"
;;
Rollback)
echo "Status:$Status"
echo "Version:$Version"
cd ${WORKSPACE}/bak/$Version #进入备份目录
pwd
cp -f xxx.tar.gz ${WORKSPACE}/ #将备份拷贝到程序打包目录中,并覆盖之前的文件
;;
*)
exit
;;
esac
把代码复制到项目目录,解压(小本测试jenkins跟正式环境在一台服务器上)
cp /var/lib/jenkins/workspace/xxx/xxx.tar.gz /var/www/html/test
cd /var/www/html/test
tar -zxvf xxx.tar.gz
rm xxx.tar.gz
删除多余的备份文件
ReservedNum=5 #保留文件数
FileDir=${WORKSPACE}/bak/
date=$(date "+%Y%m%d-%H%M%S")
cd $FileDir #进入备份目录
FileNum=$(ls -l | grep '^d' | wc -l) #当前有几个文件夹,即几个备份
while(( $FileNum > $ReservedNum))
do
OldFile=$(ls -rt | head -1) #获取最旧的那个备份文件夹
echo $date "Delete File:"$OldFile
rm -rf $FileDir/$OldFile
let "FileNum--"
done
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
2015-12-30 android service笔记