jenkins的安装:
(注意不要使用自定义插件https://www.cnblogs.com/wulixia/p/11009523.html)
简单步骤介绍:
环境准备:Java和wget
1.下载安装:
(1)sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
(2)sudo rpm --importhttps://jenkins-ci.org/redhat/jenkins-ci.org.key
(3)sudo yum install jenkins
2.修改jenkins端口:vi /etc/sysconfig/jenkins
3.修改jdk配置:vim /etc/init.d/jenkins
在文件最后一行添加服务器的Java安装路径
3.启动jenkins:service jenkins restart
4.登录对应的端口号和地址,添加新的管理员用户开始使用
jenkins搭配maven、git实现自动部署发布
在安装时不要使用自定义插件,选择“选择插件来安装”
汉化插件安装:(1)安装插件locale plugin(2)系统管理-->系统设置-->Locale(3)填入zh_CN
安装选择git、gitlab、maven Integration plugin、publish Over SSH(ssh通道,实现ssh信息验证,以实现跨服务器访问)
配置jenkins的环境变量
(1)系统管理-->全局工具配置:添加maven、jdk、git的配置(建议自己在系统中安装,用系统中的安装路径)
(2)系统管理-->系统配置:添加jenkins location和gitlab的对应信息
(3)ssh通道配置
系统管理-->系统配置-->Publish over SSH
添加对应的passphrase(生成ssh密钥时填写的密码),path to key对应生成ssh时的id_rsa文件,key对应id_rsa文件的内容
SSH server:name自定义,hostname为拉取jar包或者源码的服务器ip,username为登录服务器的账号名,Remote Directory 为id_rsa的文件存放路径(如果默认的.ssh文件报错找不到,可以自定义一个安装目录)
至此,jenkins的安装,插件的添加,jenkins的基本环境变量配置和ssh通道已经添加完成
构建自动化项目
1.新建任务-->起一个项目名,选择构建一个maven项目
2.添加项目配置(gitlab connetion为环境变量配置的gitlab的选项)
3.选择git的获取地址
4.构建触发器(记住webhook对应的url,添加git钩子函数的时候需要使用)
5.构建项目(项目是jar包的方式发布,可以直接package,war包可以使用install,本质上mvn命令内容)
6.构建后操作,填写send build artifacts over SSH,source files填写项目jar包文件的名称,exec command中可以直接使用linux命令(对shell脚本使用不熟练的小伙伴可以直接使用命令操作),完成后点击应用,保存就可以了,至此,一套可自动编译的项目就完成了【jar包启动和停止的shell脚本命令附下边】
【简单的jar包启动、重新启动和停止的shell脚本命令】
app='/home/project/****.jar'
args='-Xms2g -Xmx2g -Dspring.profiles.active=prod'
cmd=$1
pid=`ps -ef|grep java|grep $app|awk '{print $2}'`
startup(){
nohup java -jar $args $app /null &>/dev/null &
}
if [ ! $cmd ]; then
echo "Please specify args 'start|restart|stop'"
exit
fi
if [ $cmd == 'start' ]; then
if [ ! $pid ]; then
startup
else
echo "$app is running! pid=$pid"
fi
fi
if [ $cmd == 'restart' ]; then
if [ $pid ]
then
echo "$pid will be killed after 3 seconds!"
sleep 3
kill -9 $pid
fi
startup
fi
if [ $cmd == 'stop' ]; then
if [ $pid ]; then
echo "$pid will be killed after 3 seconds!"
sleep 3
kill -9 $pid
fi
echo "$app is stopped"
fi