美文网首页
【jenkins小白指南】jenkins+maven+git实战

【jenkins小白指南】jenkins+maven+git实战

作者: 傻瓜先生fd | 来源:发表于2018-01-04 22:51 被阅读177次

背景:

由于自身处于一个小规模的开发团队中,平时后台开发也包揽了运维的工作,而在开发过程中又需要不断地发布更新,追求最快速度的迭代,所以简单枯燥的发布工作无法逃避。虽然手动部署并没有很耗时间,但有点极客强迫的我还是希望能通过代码去解决这个困扰——从而就看到了jenkins。

开发环境

  • 硬件:Macbook(充当jenkins服务器角色)、阿里云服务器(充当应用服务器角色)
  • 软件:jenkins、git、maven;

整体流程

远程git分支更新-->maven编译打包-->SSH上传到远程服务器-->sh命令部署服务

具体步骤

1.安装jenkins

选择一台机器安装jenkins,当做jenkins服务器,可以是PC也可以是服务器,这里我是安装在mac上。
经过网上考察研究,这里推荐一种最简单的安装运行jenkins的方法,从Jenkins官方网站https://jenkins.io/下载最新的war包。然后就是一行代码启动(在刚刚下载的war包目录下运行):

java -jar jenkins.war

其实jenkins包中包含了一个jetty,因为是jetty,所以我们可以通过再加上 --httpPort=7788参数,更改jenkins服务器的启动端口。

启动后访问 :http://localhost:8080 (或者通过--httpPort修改的端口号,这里默认用8080)

刚进入界面如下图所示:


jenkins登录界面

用户名:admin,初始密码见jenkins home directory,我这里是这个路径/Users/bigmao/.jenkins,再进入/secret路径,打开一个名为initialAdminPassword的文件,里面就是初始密码。
其中具体的jenkins home directory可以在jenkins启动时的控制台中查看:


jenkins home directory

2.设置基本配置信息,安装必要插件

2.1安装Maven和JDK

点击左侧菜单栏的系统管理,再点击全局工具配置,分别新增一个Maven和JDK,以Maven为例:

新增Maven
新增JDK

填入Name,设置MAVEN_HOME,不勾选自动安装(就是指引用本机已安装的maven,如果未安装也可以选择 自动安装 ),然后保存即可。JDK同理。

注意:如果不太确定本机的MAVEN_HOME和JAVA_HOME,可以通过如下命令查看:
mvn --version


查看MAVEN_HOME和JAVA_HOME
2.2安装插件

同样点击左侧系统管理,选择管理插件,选择可选插件。
本次要安装三个插件:Git plugin、Maven Integration plugin、Publish Over SSH。通过名字也可以得知这是git、maven以及ssh的几个插件。
依次通过右上角的搜索功能,找到并安装好这三个插件,当然在安装过程中会安装不止一个选中的插件,可以理解为安装依赖的必要插件。安装完选择重启jenkins使之生效。

也可以通过访问 http://localhost:8080/restart 来重启

2.3设置访问应用服务器

在系统管理--系统设置中,找到最下面的SSH Server设置,


SSH Server设置

依次填入Name(名称,随意取)、HostName(服务器ip或者域名)、Username(访问服务器的用户,一般是root,其他用户可能在后来运行程序时权限不够,要做好权限控制)、Remote Directory(访问远程服务器的跟目录,可以是/)。
接下来就是设置访问密钥:
一般访问远程服务器都是用过ssh服务访问,需要生成一对公钥私钥,在Passphrase/Password中填入访问公私钥的密码(可以为空,如果当时生成时没设置直接回车的),以及在Key中填入生成的私钥。
生成公私钥主要是通过:ssh-keygen -t rsa命令生成(也可以用其他密钥算法),然后将公钥id_rsa.pub中的内容复制到authorized_keys文件,私钥则填入上图的Key框中。
刚才复制得到的authorized_keys文件需要复制到应用服务器的~/.ssh/authorized_keys路径下保存,然后重新启动sshd服务:service sshd restart;
如果一切设置正确,name现在我们的jenkins服务器(其实是这台PC)就能免密码登录应用服务器了。
点击SSH Server设置那里的Test Configuration,成功就可以保存返回。

3新建项目

又是选择左边菜单栏的新建,然后填上项目名称,选择“构建一个Maven项目”,如果没有这个选项,应该是插件没有安装成功或生效,请重新安装;


选择“构建一个Maven项目”
3.1源码管理

点击确定进入下一步,先关注源码管理部分:

源码管理

依次填入Repository URL、Credentials、Brand Specifier:
URL就是你代码托管的远程服务器,可以是github(那就不需要Credentials,也就是安全认证),我这里是用了自己搭建的gitlab服务器,所以需要账号密码验证,点击Add,输入账号密码即可。
下面的Brand Specifier就是需要jenkins关注的分支,可以是master分支,我这边设置了一个release分支。只要该分支有新的更新,就会启动自动化部署。

3.2构建触发器

也就是上一步讲到的,jenkins会关注git分支的更新,触发器就是设置关注的频率。


构建触发器

这里“Poll SCM”是常用到的选项,也就是每隔一段时间检查一次。

例如:H/10 * * * * 就是每隔10分钟检查一次,设置完成后下面也会有一段英文注释说明。

3.3 编译Build

这里就很简单的Maven参数设置,可以用最基本的 clean package,也可以跟我一样添加编译选项,如跳过测试-DskipTest=true;


编译Build
3.4构建后操作
构建后操作

这里的构建就是指完成以上那些操作,这里可以理解为完成编译打包后。编译打包后自然就是上传应用服务器,然后启动服务了。
为了每次重新发布的需求,其实是需要先关闭现有的web应用程序,然后上传jar包(或者war包),最后就是启动web应用程序,其中关闭和启动应用程序可以通过shell命令完成:

stop.sh :


stop.sh

start.sh:


start.sh

最后注意我是分为两个Transfer Set依次执行的,先执行sh ./stop.sh关闭服务,再上传jar包,最后执行sh ./start.sh启动服务。
Source files 可以填需要上传的文件,注意默认路径是jenkins work dircetory路径,jar包就在./target/xxx.jar下,Remove prefix就是选择不传target/路径,这里就是只传单个jar包。当然,这里可以传多个文件,用分号;分隔即可。

4测试

最后,点击保存后进入该项目面板,可以直接点击左边菜单栏的立即构建。


立即构建

就会生成一个#1的任务,可以看到进度条,完成后如果显示黄色圆圈则代表构建成功,蓝色则表示失败。
点击#1可以进入具体的构建任务查看详情,点击左边Console Output可以查看日志


Console Output日志
可以看到刚才构建流程的所有日志,依次是git fetch回最新的分支,然后maven编译打包,最后上传jar文件,启动服务。

总结:

第一次写教程,本来想写得更加通俗易懂,面面俱到一点,好让第一次接触的人能更好理解,快速搭建起一套可用易用的jenkins服务器,但是写着写着发现内容越来越多,到后来已经能深刻理解那些写博客写教程的前辈们的辛苦之处了。
写作需要多锻炼,希望从这篇开始,勤加磨炼!

相关文章

网友评论

      本文标题:【jenkins小白指南】jenkins+maven+git实战

      本文链接:https://www.haomeiwen.com/subject/kkednxtx.html