jekins 和 expcet 脚本自动构建项目
程序员文章站
2022-03-17 08:02:44
...
jenkins 是已经搭建好的,本次主要是后面脚本的事情
公司项目需要部署多台服务器 避免每次打包上传,想弄个自动构建。
步骤如下:
1 jenkins构建完之后会可以执行本机脚本
2 安装expcet
3 写脚本:
这个脚本是在jenkins 构建完之后执行的。
原理是 用expcet 将war上传到 服务器,然后在执行服务器的 shell脚本,这个shell 主要解压 重启tomcat 就行。
碰到的问题
1 第一次写shell脚本,不知道shell 要求那么严格 看了下面的博客才知道写好的
http://blog.chinaunix.net/uid-7589639-id-3018105.html
感谢他
执行 [color=darkred]t.sh[/color] 重启tomcat的时候, 碰到自动重启失败问题, 发现原来是 系统装了低版本的jdk,手动重启会指定 java_home 路径所以没问题。
tomcat 关闭 是通过 catalina.sh stop -force , 有个功能是五秒未关闭 kill掉 不需要写shell去kill,具体可以查阅blog: https://my.oschina.net/abcfy2/blog/192203
新建一个$CATALINA_HOME/bin/setenv.sh文件 并授权 x 即可,
后记:
其实 用jenkins的插件 publish Over SSH 可以解决上述问题
公司项目需要部署多台服务器 避免每次打包上传,想弄个自动构建。
步骤如下:
1 jenkins构建完之后会可以执行本机脚本
2 安装expcet
3 写脚本:
#!/usr/bin/expect -f set password test set ipOne 10.2.0.1 set userName test spawn scp /root/.jenkins/workspace/test/product/test.war $userName@$ipOne:/home/work/test.war set timeout 3 expect { "yes/no" {send "yes\r";exp_continue} } expect "$userName@$ipOne's password:" set timeout 3 send "$password\r" set timeout 300 send "exit\r" expect eof #ssh spawn ssh $userName@$ipOne /home/test/t.sh expect "$userName@$ipOne's password:" set timeout 3 send "$password\r" set timeout 300 send "exit\r" expect eof
这个脚本是在jenkins 构建完之后执行的。
原理是 用expcet 将war上传到 服务器,然后在执行服务器的 shell脚本,这个shell 主要解压 重启tomcat 就行。
碰到的问题
1 第一次写shell脚本,不知道shell 要求那么严格 看了下面的博客才知道写好的
http://blog.chinaunix.net/uid-7589639-id-3018105.html
感谢他
执行 [color=darkred]t.sh[/color] 重启tomcat的时候, 碰到自动重启失败问题, 发现原来是 系统装了低版本的jdk,手动重启会指定 java_home 路径所以没问题。
tomcat 关闭 是通过 catalina.sh stop -force , 有个功能是五秒未关闭 kill掉 不需要写shell去kill,具体可以查阅blog: https://my.oschina.net/abcfy2/blog/192203
新建一个$CATALINA_HOME/bin/setenv.sh文件 并授权 x 即可,
#!/bin/bash CATALINA_PID=$CATALINA_HOME/bin/CATALINA_PID JAVA_OPTS="--server -Xmx1280m -XX:+UseConcMarkSweepGC" JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
后记:
其实 用jenkins的插件 publish Over SSH 可以解决上述问题
上一篇: Mysql 5.7.18 解压版安装及启动实例方法
下一篇: ng-model ng-show