概述

本文操作基于Ubuntu系统,其它系统操作类似。
本文目标:实现Ubuntu系统下,Jenkins环境的搭建和通过SSH方式的多机部署。
为便于操作,以下操作过程中均使用root用户。

安装

安装JDK

安装Jenkins

1. 下载

下载地址:https://jenkins.io/zh/download/

Jenkins一主多从高可用HA架构 jenkins 多台机器_SSH


选择自己机器对应的版本即可。鉴于我比较喜欢绿色版软件,此处选择最后那个

Generic Java package (.war)

切换到要安装Jenkins的目录,比如我的/data/tools/jenkins,执行wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war,下载完成后如图:

Jenkins一主多从高可用HA架构 jenkins 多台机器_Jenkins一主多从高可用HA架构_02

2. 启动

执行命令java -jar jenkins.war --httpPort=8080 如果看到如下图的日志,表明启动成功

Jenkins一主多从高可用HA架构 jenkins 多台机器_环境搭建_03


如果没有成功,请检查JDK是否正确安装并且8080端口是否被占用,如果端口被占用,换一个即可。

3. 初始化

打开浏览器,输入http://localhost:8080,如果是远程操作,请替换localhost为对应机器的IP。如图

Jenkins一主多从高可用HA架构 jenkins 多台机器_Jenkins一主多从高可用HA架构_04


按照提示,复制/root/.jenkins/secrets/initialAdminPassword文件中的初始admin密码,然后点继续。

我这里图省事,直接选择推荐的插件:

Jenkins一主多从高可用HA架构 jenkins 多台机器_Jenkins一主多从高可用HA架构_05


插件安装完成后,填写管理员信息保存即可,如图

Jenkins一主多从高可用HA架构 jenkins 多台机器_Jenkins一主多从高可用HA架构_06


跟随指引走完流程之后进入主界面,如图

Jenkins一主多从高可用HA架构 jenkins 多台机器_多机部署_07


至此初始化完成。

但是,由于要发布的是Java项目,并且要发布到远程机器上,所以maven插件(Maven Integration)和SSH插件(Publish Over SSH)需要装一下。操作过程如图:

Jenkins一主多从高可用HA架构 jenkins 多台机器_SSH_08


Jenkins一主多从高可用HA架构 jenkins 多台机器_环境搭建_09


Jenkins一主多从高可用HA架构 jenkins 多台机器_Jenkins一主多从高可用HA架构_10


Jenkins一主多从高可用HA架构 jenkins 多台机器_环境搭建_11


插件安装完成,重启Jenkins之后即可开始个性化配置啦。

配置

全局工具配置

在全局配置中可以指定maven,git,JDK等环境配置

Jenkins一主多从高可用HA架构 jenkins 多台机器_环境搭建_12


Jenkins一主多从高可用HA架构 jenkins 多台机器_多机部署_13


如果机器上没有安装git,maven,以及编译代码使用的JDK,都可以在这里让Jenkins自动安装。如果使用的是maven私服,也可以指定下maven配置文件在机器上的位置。

配置完成后,点保存即可。

Jenkins一主多从高可用HA架构 jenkins 多台机器_SSH_14

系统配置

Jenkins一主多从高可用HA架构 jenkins 多台机器_多机部署_15


这里的配置项非常多,不再展开说明,只讲下发布配置。

发布时可以使用用户名+密码的方式,也可以用SSH的方式,这里讲下使用SSH的发布方式。

主要步骤
  1. 指定私钥在机器上的路径,或者直接把私钥内容粘贴到Key文本框中,如图
  2. 添加远程目标机器。点击SSH Servers后边的新增按钮,添加刚刚配置过SSH的目标机器信息,如图

保存即可。

凭据配置

配置凭据是为了从私有的git仓库上拉取代码,同样有几种方式,可以选择使用用户名+私钥,也可以选择用户名加密码,根据自己喜好选择即可,这里选择用户名+私钥。操作过程如图

Jenkins一主多从高可用HA架构 jenkins 多台机器_环境搭建_16


把私钥粘贴过来,保存即可。如图

Jenkins一主多从高可用HA架构 jenkins 多台机器_Jenkins_17

Git配置

此处以GitHub为例,进入个人设置页,然后配置服务器公钥即可,如图

Jenkins一主多从高可用HA架构 jenkins 多台机器_多机部署_18

创建任务

  1. 新建一个Jenkins任务,如图

    名字一般就是项目名称,这里选择maven项目

    确定之后,在任务配置页进行项目名称,git地址,凭证,分支,编译,发布等配置,如图

    此处的project.name是一个字符串参数,可以在接下来的配置中当变量来用,这样如果项目名改了,我们直接修改project.name的默认值即可,其余配置不用改。



    添加部署脚本:

    其中部署脚本比较简单,这里粘出来,便于复制修改
source /etc/profile
cd /data/apps/${project.name}
mkdir -p history
ps -ef | grep ${project.name} | grep -v grep| awk ‘{print $2}’ | xargs kill -9
sleep 10

#移除3天前的app备份
find ./history -name "${project.name}.jar.*" -mtime +2 -exec rm {} \;
mv ${project.name}.jar ./history/${project.name}.jar.`date +%Y%m%d-%H:%M:%S`

#启动app
chmod -R a+r ./
chmod a+x ${project.name}.jar
nohup java -jar ${project.name}.jar &

最后保存,任务编写完成。

验证

回到主界面,可以看到test任务已经创建好了,点启动按钮,然后点开始构建即可,如图

Jenkins一主多从高可用HA架构 jenkins 多台机器_SSH_19


Jenkins一主多从高可用HA架构 jenkins 多台机器_Jenkins一主多从高可用HA架构_20


构建Console控制台中看到 Finished: SUCCESS即表示构建成功了。