概述
本文操作基于Ubuntu系统,其它系统操作类似。
本文目标:实现Ubuntu系统下,Jenkins环境的搭建和通过SSH方式的多机部署。
为便于操作,以下操作过程中均使用root用户。
安装
安装JDK
安装Jenkins
1. 下载
下载地址:https://jenkins.io/zh/download/
选择自己机器对应的版本即可。鉴于我比较喜欢绿色版软件,此处选择最后那个
切换到要安装Jenkins的目录,比如我的/data/tools/jenkins
,执行wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
,下载完成后如图:
2. 启动
执行命令java -jar jenkins.war --httpPort=8080
如果看到如下图的日志,表明启动成功
如果没有成功,请检查JDK是否正确安装并且8080端口是否被占用,如果端口被占用,换一个即可。
3. 初始化
打开浏览器,输入http://localhost:8080
,如果是远程操作,请替换localhost为对应机器的IP。如图
按照提示,复制/root/.jenkins/secrets/initialAdminPassword
文件中的初始admin密码,然后点继续。
我这里图省事,直接选择推荐的插件:
插件安装完成后,填写管理员信息保存即可,如图
跟随指引走完流程之后进入主界面,如图
至此初始化完成。
但是,由于要发布的是Java项目,并且要发布到远程机器上,所以maven插件(Maven Integration)和SSH插件(Publish Over SSH)需要装一下。操作过程如图:
插件安装完成,重启Jenkins之后即可开始个性化配置啦。
配置
全局工具配置
在全局配置中可以指定maven,git,JDK等环境配置
如果机器上没有安装git,maven,以及编译代码使用的JDK,都可以在这里让Jenkins自动安装。如果使用的是maven私服,也可以指定下maven配置文件在机器上的位置。
配置完成后,点保存即可。
系统配置
这里的配置项非常多,不再展开说明,只讲下发布配置。
发布时可以使用用户名+密码的方式,也可以用SSH的方式,这里讲下使用SSH的发布方式。
主要步骤
- 指定私钥在机器上的路径,或者直接把私钥内容粘贴到Key文本框中,如图
- 添加远程目标机器。点击SSH Servers后边的新增按钮,添加刚刚配置过SSH的目标机器信息,如图
保存即可。
凭据配置
配置凭据是为了从私有的git仓库上拉取代码,同样有几种方式,可以选择使用用户名+私钥,也可以选择用户名加密码,根据自己喜好选择即可,这里选择用户名+私钥。操作过程如图
把私钥粘贴过来,保存即可。如图
Git配置
此处以GitHub为例,进入个人设置页,然后配置服务器公钥即可,如图
创建任务
- 新建一个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任务已经创建好了,点启动按钮,然后点开始构建即可,如图
构建Console控制台中看到 Finished: SUCCESS即表示构建成功了。