由于自己会写一些小的项目,部署到腾讯云上,每次都甚是繁琐。

以springboot项目为例,打jar,上传jar,到服务器,手动启动等等。

随着项目的增大增多,现在公司大都用自动构建,多数用jenkins + k8sdocker容器搭配或者gitlab等,所以自己决定手动搭建一个辅助项目部署。

第一次: 高估了水管,低估了jenkins
jenkins-server-info

第二次: 搭建虚拟机
本来打算搭建一个打包服务器,配置低配置的就ok了,结果还是考虑的少了,jdkmvngit等,尤其是私有mvn仓库,上传了本机的repo后,机子内存就不多了,结果在构建了几次后提示:空间不足!

第三次: 增加磁盘容量
最后安装了个较大容量的centos系统,安装了环境之后,成功构建了!

最后写了个post-step,在构建之后scp 命令把jar上传到服务器的web目录,并ssh到目录,nohup运行之,完美!

jenkins构建完成后post-step
jenkins构建完成后post-step

服务进程
服务进程

虽然不是什么高深的东西,但是搞出来了还是很欣慰,顺便学习了shellexpect命令的用法,贴上脚本:

#!/usr/bin/expect
set timeout 20
set host ""
set password ""
# 传输文件
spawn scp target/openapi-1.0.jar root@$host:/www/wwwroot/openapi/openapi-1.0-remote.jar
expect {
  "yes/no" {send "yes\n";exp_continue}
  "password:" {send "$password\n"}
}
# 登陆ssh
expect "]*"
spawn ssh root@$host
expect {
"yes/no" { send "yes\n"}
"password:" { send "$password\n" }
}
# 杀进程
# expect "]*"
# send "ps -ef | grep openapi | grep -v grep | awk \"{print $2}\" | xargs kill -9\r"
# 启动
expect "]*"
send "cd /www/wwwroot/openapi;sh start.sh&\r"
expect "]*"
send "exit\n"

jenkins安装教程 / jenkins安装 - 图片备用
expect用法 /expect用法 - 图片备用