Jenkins远程部署Linux服务器

Posted by lyp on Sunday, January 13, 2019

TOC

前言

之前在Jenkins上也有一些使用经验了,但是都是使用团队配置好的Jenkins,自己只需要管自己的项目以及执行构建即可,这一次自己尝试了一下配置Jenkins的远程部署Linux服务器以及应用。

执行过程如下:

  1. Jenkins拉取代码
  2. 本地构建打包
  3. 连接远程服务器
  4. 上传打包应用
  5. 到相应目录解压应用内容以及重启正在运行的应用。

插件

远程部署过程中在本地操作远程服务器使用的插件是publish over ssh
系统管理中找到插件管理

点击插件管理

搜索publish over ssh

笔者这里没有搜索出来是因为已经安装过了

安装完成后回到刚才的系统管理的页面,往下拉会看到一个系统设置,点击进到系统设置页面。

往下拉,会看到SSH Servers相关的配置

笔者是使用密码的方式进行ssh服务器,在Passphrase填写对应的密码即可,还有其他四项内容如下:

  1. Name是给sshserver自定义一个名称
  2. Hostname是ssh服务器的地址
  3. Username是ssh服务器的用户名
  4. Remote Directory是需要上传文件到服务器的远程目录

填写基本信息完成后可以点击Test Configuration测试下是否连接正常,信息都正确后点击应用Apply,一个ssh服务器就配置好了,剩下的就是要在项目配置的时候使用已填的ssh服务器进行操作。

项目的代码拉取,命名,构建这里都略过,直接看项目远程部署部分的配置。

首先,在构建完成后的行动中选择Send build artifacts over SSH

填写相对应的远程操作

上述图中展示的是笔者将target目录下的所有war包都打包到远程服务器tomcat下的webapps/ROOT目录下,然后解压war包睡10S执行重启脚本

这里详细讲解下:

  • Source files 需要打包的文件
  • Remove prefix 需要去除的前缀路径
  • Remote directory 文件上传的远程服务器目录,这里的目录是之前远程服务器设置的Remote directory目录的相对目录

也就是说笔者这里设置的目录实际上等于之前服务器设置的目录/usr/local/apache-tomcat-8.5.37加上这里设置的目录/webapps/ROOT,连起来就是/usr/local/apache-tomcat-8.5.37/webapps/ROOT

  • Exec command在远程服务器上执行的命令

远程部署linux服务器的相关配置到这里就完成了,开始愉快的自动化远程部署之旅吧!