服务器配置如下:
192.168.159.50 gitlab服务器(Gitlab,内存至少5个G,要不根本跑不动)
192.168.159.51 jenkins服务器(Jenkins-Server+Maven+JDK)
192.168.158.52 测试服务器(JDK)
git安装
这里先在jenkins这台机器上装个git
yum install -y git
新建一个任务,这里选择构建一个maven项目
项目名称写first
输入项目地址(就是我们在自己gitlab服务器上的项目地址)
这里写你jenkins服务器上的maven安装位置:我的是/usr/local/maven
这里还要看你pom.xml文件的位置,如果不是直接暴露在仓库最外层,比如在demo目录下,那就要写成demo/pom.xml
点击构建按钮
Dashboard这里也可以看到成功了,并且显示出了曾经成功和失败的时间
去jenkins服务器上面查看是否打包成功,如下,可以看到target目录和jar包说明打包成功了
运行jar包测试一下
java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8888
这个只是个测试项目,只有一个负责测试的Controller,结构大概如下
测试下简单的业务类,访问:http://192.168.159.51:8888/index/hello
简单业务类的测试也没有任何的问题。这样一个简单的自动化部署就完成了,但是我们还想自动把jar包传到测试服务器(192.168.159.52)上面执行,而不是我们去手动执行jar包。
先在jenkins服务器上安装个插件:Publish Over SSH
选中,点击Install without restart
1、由于还没有添加测试服务器,先去System Configuration中配置
2、在Configure System菜单里 往下拉,找到Publish over SSH
3、添加一台目标服务器:这里我的测试服务器IP是192.168.159.52
4、测试下链接是否正常,左下角显示Success说明连接没问题
5、再去看Post Steps中,选择Send files or execute commands over SSH
这里就可以看到我们刚才添加的testserver了,如下图所示。
6、发布到远程服务器的配置
这样让远程测试服务器上的jar包以后台进程方式启动
查看jar包是否传到了测试服务器上,如下图。
查看测试服务器是否执行了启动jar包的脚本(脚本就是我们在Post Steps配置的那一行)
jps
可以看到,jar包已经被执行了。
验证业务类是否可访问,192.168.159.52:8888/index/hello
好了,到此我们已经了解了持续集成和持续部署的基本操作,当然,这些还都是皮毛,后面再研究下。
默认yum安装java的时候会显示安装的是openjdk1.8,实则实际上只安装了jre
yum install -y java-devel
修改/usr/local/maven/conf/settings.xml
${user.home}/.m2/repository
org.mortbay.jetty
releases
ali
ali
Snapshots
ali
ali
nexus
*
http://maven.aliyun.com/nexus/content/groups/public/
nexus-public-snapshots
public-snapshots
http://maven.aliyun.com/nexus/content/repositories/snapshots/
nexus-public-snapshots1
public-snapshots1
https://artifacts.alfresco.com/nexus/content/repositories/public/
development
central
http://central
true always
true always
central
http://central
true always
true always
public-snapshots
public-snapshots
http://public-snapshots
false
true always
public-snapshots
http://public-snapshots
false
true always
development
public-snapshots
Exception when publishing, exception message [Exec timed out or was interrupted after 120,001 ms]
参考了其他大佬的文章,需要勾选Exec in pty选项
然后重新构建就成功了