记录搭建使用自动构建 - jenkins
由于自己会写一些小的项目,部署到腾讯云上,每次都甚是繁琐。
以springboot项目为例,打jar,上传jar,到服务器,手动启动等等。
随着项目的增大增多,现在公司大都用自动构建,多数用jenkins
+ k8s
或docker
容器搭配或者gitlab
等,所以自己决定手动搭建一个辅助项目部署。
第一次: 高估了水管,低估了jenkins
第二次: 搭建虚拟机
本来打算搭建一个打包服务器,配置低配置的就ok了,结果还是考虑的少了,jdk
,mvn
,git
等,尤其是私有mvn
仓库,上传了本机的repo
后,机子内存就不多了,结果在构建了几次后提示:空间不足!
第三次: 增加磁盘容量
最后安装了个较大容量的centos
系统,安装了环境之后,成功构建了!
最后写了个post-step
,在构建之后scp
命令把jar上传到服务器的web目录,并ssh
到目录,nohup
运行之,完美!
jenkins构建完成后post-step
服务进程
虽然不是什么高深的东西,但是搞出来了还是很欣慰,顺便学习了shell
的expect
命令的用法,贴上脚本:
#!/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"