用到的技术和工具:git + maven + jdk + jenkins,首先服务器安装git、maven、jdk,这些都不再赘述。
1:开始安装主角jenkins,首先去官网下载war包(https://jenkins.io/),上传到服务器。
2:因为后续需要看下日志,先java -jar方式启动,后续可以通过nohup或者别的方式进行后台方式启动,jenkins的默认启动端口是8080,进去界面之后会提示输入密码,这个密码有在后台日志打印。
输入之后选择插件然后进入主页面。
3:本文用到的jenkins插件除了默认还有:Pipeline Maven Integration Plugin、SSH plugin,紧接着开始配置全局工具(git、jdk、maven目录)。
4:后续我是通过ssh方式拉去git仓库代码,需要在全局凭据里面配置SSH Username with private key,就是当前启动Jenkins的用户通过ssh-keygen -t rsa生成的私钥。然后再把公钥放到git仓库所属用户的~/.ssh/authorized_keys中。
5:下面就可以新建任务了,我们可以选择历史构建保留的天数及个数。
然后配置git仓库地址,选择我们上一步新建的凭证。
接下来可以选择maven构建时的一些操作 ,如先清除在构建或者跳过测试等。
最后可以配置构建完成之后,执行一些脚本如:杀掉原来的进程,再进行重启等。
这样我们就可以构建了,当然也可以设置定时执行,不过我选择的是提交代码之后手动构建,看个人的场景进行选择吧。还有很多没有用到的地方可以自己试着用一下。
还有一种情况是需要发送远程的服务器,这个时候有两个选择。
1:通过publish over ssh,首先先安装了这个插件。
接下来增加构建后操作,这个配置详解如下。
这些都是基于当前启动jenkins的用户工作空间来,如/root/.jenkins/workspace/alioss-uat
SSH Server Name:选个一个你在系统设置里配置的名字
Transfer Set Source files:需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)
Remove prefix:移除目录(只能指定Transfer Set Source files中的目录,这里移除了target目录表示只将FinServer.war传到目标服务器,否则会在目标服务器创建target目录)
Remote directory:远程目录(根据你的需求填写,这里没有填写默认会继承系统配置,即/mnt)
Exec command:把你要执行的命令写在里面(这里的命令是在目标服务器上执行的)
2:直接创建普通的工程,不要创建maven工程,这是适应不需要打包,直接远程拷贝的场景。
#!/bin/sh
#这是远程拷贝到指定服务器
scp -P 52827 /root/.jenkins/workspace/service-0.0.1-SNAPSHOT.jar [email protected]:/home/manager/tomcat/service-0.0.1-SNAPSHOT.jar_pre
#这是执行远程服务器的shell命令
ssh -p 52827 [email protected] "cd /opt/bin;./ali-service.ssh"