先把总体流程梳理一下:
+-------------git:拉取最新提交代码,分支可指定,放在jenkins工作空间,如:/var/lib/jenkins/workspace
|
+-------------maven:打包,从jenkins工作空间上按pom.xml执行配置的maven命令,如:clean install XXX
jenkins-------| |
| +-------------nexus:settings.xml指定maven私服,去nexus上拉取依赖构件
+------------Publish Over SSH:配置运行用户,如:springCloudGateway,打包完上传到用户根目录
|
+------------bootstrap.sh:启动脚本,将上传的jar包跑起来
第一步:先把插件装好。进入之前搭建的jenkins(jenkins安装参见centos6.9安装jenkins最新稳定版2.249.2 )界面,点击左上角的Jenkins图标,提示安装默认插件。我看有一些是我需要的,比如git插件,我就点了确定,结果自动给我安装了一堆插件,包括翻译。重新左上角图标,提示设置jenkins的URL:
自动提示了jenkins的URL的ip和端口,点击确定后进入欢迎页,这里不用管它:
如果有些插件还没有安装,可以确认一下,点开插件管理:
点击“已安装”,我们看下有没有maven插件,在输入框中敲“maven”,搜不到maven:
所以还得再装一下maven插件,点击可选插件,搜“maven”,勾选“Maven Integration”,点“直接安装”:
同样的,装一个Publish Over SSH插件,用来通过ssh命令发送maven的构建:
第二步:配置全局变量,添加我们要部署的用户springCloudGateway:
点“Configure System”后,拉到最下面,在SSH Servers这里点击新增:
去新建个用户:
[root@VM-0-14-centos ~]# useradd springCloudGateway
[root@VM-0-14-centos ~]# passwd springCloudGateway
再回来配置一下:
点一下“高级”,把密码也配置好:
最后点击保存,记得点“Test Configuration”测试一下能否连通springCloudGateway环境:
另外把mavne的jenkins本地仓库也设置一下:
第三步:全局工具配置,点击Manage Jenkins -> Global Tool Configuration:
3.1 设置maven的setting文件,使用之前安装的maven3.6.3的配置(安装参见centos6.9安装maven3.6.3 ):
3.2 设置JDK1.8家目录:
3.3 设置git执行脚本路径(安装参见centos6.9搭建git1.7.1 ):
3.4 设置maven安装路径:
第四步:前面都是铺垫,现在才是关键——创建新任务:
4.1 输入任务名称,选择Maven项目,点击“确定”:
4.2 配置源码,把之前spring-cloud-gateway的git clone连接复制过来即可:
因为我们没有把jenkins的公钥加入到git仓库的authorized_keys文件中,需要整一下:
[root@VM-0-14-centos jenkins]# ssh -keygen
Bad escape character 'ygen'.
[root@VM-0-14-centos jenkins]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4b:d8:9f:2c:19:e6:c7:71:e8:e2:5d:10:16:11:9b:25 root@VM-0-14-centos
The key's randomart image is:
+--[ RSA 2048]----+
| Eo. |
| * |
| = |
| o . o |
| . S + . |
| + O = |
| * B . |
| . = . |
| . . |
+-----------------+
[root@VM-0-14-centos jenkins]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5LemBOUc1P5duv9ArXRzzehmHJnTaUdEy+FwDWDTLa1YSwE9I2O2y8oUAYSlbHa7Fas7ZqLJ+amg7zb6nq3WiBGPnhd+O7+ALvTnkF+a05x51YBqZlj0jr+m+wgXOrKKm9qQaVflAMAas6Q1K4cQBVSgy0oqE5RWffv7yKjoV02n2D7R8/0YtVpkaTYQjTaorxcHHQB9qTDSkRETzC4fXclXVUEJqZjzSrjIspyhRnHXx+XgQqeCxA8ziwMgkRmPcPmrh8UMLE3wBkB+fu3BAIsw6kkT0snYovBFQN2vLxi0AKkzL01bvn5xIVY7bQxLFNfgrYtmRsJxkNQ9rDs/2Q== root@VM-0-14-centos
上面的公钥是在root用户下生成的,复制“ssh-ras...",写入到git用户下的authorized_keys:
[root@VM-0-14-centos jenkins]# vi /home/git/.ssh/authorized_keys
刷新界面,报错提示消失了:
4.3 构建环境这里打钩,加上时间戳:
4.4 配置预处理:
用户选择我们之前在第2步配置的springCloudGateway,在启动前执行一下停止脚本:
上面红框框里的脚本详情:
sh ./bootstrap.sh ./spring-cloud-gateway-0.0.1-SNAPSHOT.jar stop
rm -rf ./spring-cloud-gateway-0.0.1-SNAPSHOT.jar
4.5 配置maven执行脚本:
4.6 配置后处理:
4.7 配置启动脚本的执行命令:
最后点击保存,可以准备执行jenkins构建任务了:
查看构建日志: