千家信息网

jenkins+shell自动化部署怎么实现

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍了jenkins+shell自动化部署怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jenkins+shell自动化部署怎么实现文章都会有所收获,
千家信息网最后更新 2025年01月19日jenkins+shell自动化部署怎么实现

这篇文章主要介绍了jenkins+shell自动化部署怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jenkins+shell自动化部署怎么实现文章都会有所收获,下面我们一起来看看吧。

通过jenkins与shell脚本相结合,实现war包自动部署到多台服务器上

环境:

  • 192.168.2.120 jenkins服务器

  • 192.168.2.117 tomcat服务器

设置jenkins服务器免密钥登陆tomcat服务器

117服:执行命令ssh-keygen -t rsa
120服:cd .ssh/;scp -p id_rsa.pub root@192.168.2.117:/root/.ssh/authorized_keys

scp -p ~/.ssh/id_rsa.pub root@192.168.2.117:/root/.ssh/authorized_keys

单击helloworld再点击配置按钮进入配置界面

1)选择execute shell

点击保存按钮

脚本:

cp /root/.jenkins/jobs/helloworld/workspace/target/edu.war /var/www/html/download/chown apache:apache /var/www/html/download/edu.warssh  root@192.168.2.117  'bash -x -s' < /data/sh/auto_install.sh

此处由于直接通过网页上下载war包,所以需要开启httpd
service httpd start(yum install httpd apr apr-util)

在120服上添加脚本名称

mkdir -p /data/shcd /data/sh

添加脚本内容:

#!/bin/bashTOMCAT_PID=`ps -ef| grep tomcat | grep -v grep |awk '{print $2}'`TOMCAT_DIR="/usr/local/tomcat"FILES="edu.war"DES_DIR="/usr/local/tomcat/webapps/ROOT"DES_URL="http://192.168.2.120/download"BAK_DIR="/data/backup/`date +%Y%m%d-%H%M`"[ -n "$TOMCAT_PID" ] && kill -9 $TOMCAT_PIDcd $DES_DIRrm -rf $FILESmkdir -p $BAK_DIR\cp -a $DES_DIR/* $BAK_DIR/rm -rf $DES_DIR/*wget -c $DES_URL/$FILES/usr/java/jdk1.8.0_151/bin/jar  -xvf  $FILEScd $TOMCAT_DIRrm -rf work. /etc/profileset -m;/bin/sh $TOMCAT_DIR/bin/startup.sh

在jenkins的web界面,进入job后,点击立即构建按钮

1)

2)进入构建页面,点击console output按钮,可以看到相关输出信息

构建完成后,可以在120的web界面看到下载的文件edu.war

在117上启动tomcat,浏览器输入网址,可以看到如下部署好的web页面

至此自动部署web完成

如果要部署多个,可以在ip.txt设置多个ip,然后通过for循环取部署即可

添加个119服务器,并配置好tomcat,然后设置120服免密钥登陆119服
此时有两个tomcat服务器,分别为117服和119服

在工程的配置界面,修改脚本为

cp /root/.jenkins/jobs/helloworld/workspace/target/edu.war /var/www/html/download/chown apache:apache /var/www/html/download/edu.warfor  I  in  `cat /data/sh/ip.txt`;do ssh  root@${I}  'bash -x -s' < /data/sh/auto_install.sh ;done

在/data/sh目录下手动建立文本ip.txt,里面填写上要自动部署web的ip地址

[root@localhost sh]# cat /data/sh/ip.txt 192.168.2.117192.168.2.119

然后点击立即构建按钮,此时就可以在117服和119服上看到自动部署的web界面

1)117服

2)119服

如果tomcat服务器数量较多,可以借助ansible工具与jenkins的结合来实现批量部署

备注:

1) tomcat服务器要安装jdk

2) 在tomcat服上手动去下载,提示权限问题

yum安装的apache,默认的执行用户为apache,而脚本里cp的文件edu.war的所有者和所属组均为root,所以提示没有权限

3) tomcat服务器的jdk路径要统一

4) 默认文件路径为/root/.jenkins/jobs/helloworld/workspace/target

5) 这里结合了httpd来获取下载的路径,实际上,可以在项目helloworld的配置界面,设置文档存储路径
A. 点击增加构建后操作步骤按钮,设置路径

B. 点击立即构建后,war包就会存放在该路径下,url为http://192.168.2.120:8080/job/helloworld/lastSuccessfulBuild/artifact/target/edu.war

C. 通过url可以直接获取war包,
比如

wget http://192.168.2.120:8080/job/helloworld/lastSuccessfulBuild/artifact/target/edu.war

对应的服务器路径为/root/.jenkins/jobs/helloworld/lastSuccessful/archive/target

auto_install.sh

#!/bin/bashTOMCAT_PID=`ps -ef| grep tomcat | grep -v grep |awk '{print $2}'`FILENAME="edu.war"TOMCAT_DIR="/usr/local/tomcat"DES_DIR="/usr/local/tomcat/webapps/ROOT"DES_URL="http://192.168.2.120:8080/job/helloworld/lastSuccessfulBuild/artifact/target"BAK_DIR="/data/backup/`date +%Y%m%d-%H%M`"[ -n "$TOMCAT_PID" ] && kill -9 $TOMCAT_PIDcd $DES_DIRrm -rf $FILENAMEmkdir -p $BAK_DIR\cp -a $DES_DIR/* $BAK_DIR/rm -rf $DES_DIR/*wget -c $DES_URL/$FILENAME/usr/java/jdk1.8.0_151/bin/jar  -xvf  $FILENAMEcd $TOMCAT_DIRrm -rf work. /etc/profileset -m;/bin/sh $TOMCAT_DIR/bin/startup.sh

关于"jenkins+shell自动化部署怎么实现"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"jenkins+shell自动化部署怎么实现"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

服务器 服务 按钮 界面 脚本 路径 配置 自动化 内容 文件 知识 多个 密钥 手动 权限 篇文章 页面 提示 登陆 上下 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库查询表里面有多少行数据 记彔网络安全行为手抄报 但连不上服务器 重庆管理软件开发公司有哪些 网络安全法解读梆梆 通卡网络技术北京有限公司 丽水云软件开发是做什么的 北京软件开发靠什么 金山区海航软件开发市场价格 服务器操作系统和工作站操作系统 天翼云服务器数据盘是什么 怎么成为网络安全专家 苹果13提示无法验证服务器 深圳 软件开发 公司 高中生网络安全重要性 fm2011数据库 凌云诺服务器爆满还能不能挤进去 打多久王者荣耀服务器会崩 网络安全技术应用大赛 取出唯一的数据库 做文明网民促网络安全 记忆神经网络技术 东莞考试软件开发咨询 军工国企做软件开发 许可管理器服务器是什么意思 sqlite新建数据库默认路径 河北互联网软件开发大概多少钱 教育类app软件开发 中国网络安全法包含 如何关联查询两个数据库表
0