Jenkins部署+ssh发布远端
Jenkins部署+ssh发布远端jenkens下载启动jenkins功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入.
·
鉴于公司目前发布项目还是本地maven打包,然后xftp上传至服务器,再启动服务器这种繁琐、耗时的流程,而且不能自动保留发布历史,所以我自己搭建了一个jenkins平台。流程大致如下:
jenkens下载
linux下可以通过wget下载,这里我从 官网 下载的war。
启动jenkins
下载完成后,我们启动jenkins,首先进入jenkins.war
目录,执行 [root@localhost jenkins]# nohup java -jar jenkins.war &
,启动成功后,页面访问
http://192.168.1.178:8080 (前面是你自己的IP,jenkins默认8080端口),会出现一个密码输入页面,按照他的要求找到密码,并粘贴到文本框,接着,会有一个插件安装页面,我们选择 推荐的插件即可,然后等待安装。
安装成功之后,
看到如下图所示(出现该页面即可),代表成功。
配置jenkins
- 点击 系统管理 -> 系统设置 鼠标滑到下面,找到如下页面,配置ssh服务器。这里要注意两点 :
1 如果没有SSH Servers,请下载插件(系统管理 -> 插件管理 -> 可选插件,搜索Publish Over SSH
进行下载)。
2 需要点开 ‘高级’,勾选 ‘User password’,并且输入远程服务器密码,点击 ‘Test Configuration’,成功。
- 点击 系统管理 -> 全局工具配置
配置情况如下图所示,这里的路径指的都是jenkins服务器上的路径,如果没有maven配置,请按照下面下载插件。
- 新建任务。如下图所示,这里要注意,如果没有 ‘构建一个maven项目’,需要下载插件(系统管理 -> 插件管理 -> 可选插件,搜索
Maven Integration
进行下载)。如果你想copy一个已经存在的任务,在复制那个输入框输入你要复制的任务就ok了。
点击OK,进入任务配置页面。下面粘贴我的基本配置。
我这里是多模块项目,且本job只发布其中一个module,所以指定了 advertise
模块打包
clean package -pl advertise -am -Dmaven.test.skip=true
- Source files:**/ 为你jenkins的工作空间路径,我打包完成后有多个模块,我只把其中 advertise 模块的jar发到62服务器,所有就配置成了下面路径
**/advertise/target/*jar
- Remove prefix:去掉的前缀,也就是过滤掉不要的文件夹,我只要jar,所以把它的上级全部都去掉了。
- Remote directory:远程服务器的文件路径,也就是你的jar要发到哪个路径去,值为 你在
系统配置
中 SSH Server中配置的 remote dictionary + 这里配置的,我就发到 前面配置的路径,所以这里我不需要再写路径了。 - Exec command:文件发到指定服务器后,要执行的 shell 脚本,可以直接写在下面,也可以 sh /aa.sh 这样调用。这里 特别特别注意,
所有的路径都要是绝对路径
。
#!/bin/bash
export BUILD_ID=dontkillme
PID=`lsof -i:7002 | grep LISTEN |awk '{print $2}'`
echo $PID
if [[ $PID -ge 0 ]];then
kill -9 $PID
nohup /usr/lib/jdk1.8.0_181/bin/java -Xms100m -Xmx2048m -jar /home/web/jenkins/advertise-1.0.0.jar > /home/web/jars/log/advertise.log 2>&1 &
else
nohup /usr/lib/jdk1.8.0_181/bin/java -Xms100m -Xmx2048m -jar /home/web/jenkins/advertise-1.0.0.jar > /home/web/jars/log/advertise.log 2>&1 &
fi
保存、构建
至此,配置就完成了,我们点击保存,然后就可以进行构建。
点击构建之后,我们可以在左下角 ‘构建队列’ 中看到本次构建进度,通过控制台输出,可以看到构建的详情。
更多推荐
已为社区贡献1条内容
所有评论(0)