jenkins 简介

  • Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:持续的软件版本发布/测试项目和监控外部调用执行的工作。
  • 官网地址地址: https://jenkins.io

下载安装启动

CentOS 下用yum进行安装启动

# 先更新源再安装最新版 jenkins
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install jenkins
# 启动
sudo service jenkins start
# 停止
sudo service jenkins stop
# 重启
sudo service jenkins restart
# 检查
sudo chkconfig jenkins on

下载war包放到tomcat中启动

  • 服务器 yum 安装速度太慢了,最终我选择了这种方式,本地下载好war包传到服务器上的tomcat容器下,然后启动
  • 下载地址:http://mirrors.jenkins.io/war-stable/latest/jenkins.war

初始化

  • 在浏览器中输入url打开jenkins的后台控制页面

    初始化界面

  • 初始化成功后会自动生成一个管理员密码放到指定位置,根据页面提示复制密码粘贴到输入框就可以登录了

    初始登录界面

  • 登录成功后回让你选择插件的安装,可以选择建议的安装也可以自己进行选择,不清楚的话可以使用建议的安装

    初始登录界面

  • 由于建议安装的插件比较多,安装的过程有点慢,多等待一会

    初始登录界面

  • 安装的过程也可能因为网络等一些原因安装会失败,现在可以无视它,点击Continue,后面再进行手动的安装

    安装完成

  • 安装完成后最好新创建一个管理员账户代替之前的临时自动生成的密码账户

    创建新的管理员账户

  • 初始化完成,进入后台管理界面

    初始化完成

    后台管理界面

安装插件

  • 之前初始化的时候,有些插件安装失败,可以在用到的时候来手动修复它,没用到的话就可以暂且不理它,不影响jenkins的使用
  • 点击左侧边栏的“系统管理”,就可以看了插件安装的一些错误信息

    插件错误信息

  • 在“系统管理”中往下拉,找到“管理插件”点击进去就可以查看和管理所有的插件,点击“可选插件”显示所有jenkins支持的插件,在右上角的“过滤”输入框中,输入需要安装的插件名就可以筛选查找到想要的插件

    查找插件

  • 选中要安装的插件输入框,点击安装就可以在线安装需要的插件,当然由于网络的原因也可能再次安装错误,或者安装的比较慢。我们可以点击插件名进入插件的主页,里面有该插件的详细信息并能下载hpi文件进行手动安装

    插件详情

  • 在“管理插件”的页面中点击高级选项,我们可以在下面找到“上传插件”,上传下载好的插件,点击“上传”,系统就会自动上传安装该插件。

    上传插件

gitlab的配置

  • 集成gitlab,让jenkins能够直接读取修改gitlab中的代码,方便项目的构建
  • 安装gitlab-plugin
  • 在“系统管理” -> “系统设置“ -> “Gitlab” 中配置对应的gitlab信息
  • 点击“Test Connection”测试下配置是否成功

    Gitlab配置

    Add Gitlab Credentials

    Gitlab API token

Publish Over SSH

  • 通过ssh连接远程服务器,并能执行脚本部署项目
  • 安装publish-over-ssh
  • 在“系统管理” -> “系统设置“ -> “Publish over SSH” 中配置对应的ssh信息
  • Key中填登录远程服务器的密码(ssh免密码登录)
  • 点击"SSH Servers"后的“增加”按钮,新增一个远程服务器
  • 点开“高级...”按钮,能进一步的配置端口等信息。
  • 配置为Server信息后,点击"Test Configuration"按钮测试是否能够连接成功。

    ssh配置

监测代码变动自动部署

  • 点击左侧边栏的“新建”按钮,新建一个任务。
  • 填写项目的名称,并选择一种构建的方式,此时我们选择第一个,构建一个自由风格的软件项目,然后点击“OK”按钮创建任务,并进行详细的配置

    新建任务

  • 默认设置里填写项目名和描述,并选择之前配置好的要连接的gitlab

    默认配置

  • 配置源码,填写要构建项目的源码仓库地址,并指定要构建的分支

    配置源码

  • 配置触发器,选择触发构建的方式,可以通过hook,根据jenkins提供的地址,放到gitlab中的hook配置中,就会自动触发构建。此时我们选择的是定时检测项目变动,如果检测到分支有新的变动就触发构建,如果感觉一分钟时间太频繁的话,可以自己设置时间频率。

    构建触发器

  • 配置构建,构建选用的是“Invoke top-level Maven target”,填写对应的maven命令,就会自动执行maven命令进行侯建
  • 配置构建后操作, 该行为会在构建完成后执行,我们选用的是“Send build artifacts over SSH”的方式,把构建完成的jar包发送到远程服务器上用ssh命令执行启动,此时jenkins所有机器的默认路径是任务所在的目录,远程机器的默认路径是之前publish-over-ssh中指定的文件地址。Source files指定要传送到远程服务器上的文件,remote directory指定的是传送到远程服务器上的文件地址,Remove prefix是值要去除的文件目录,不然传送到远程服务器也会带有该目录层级结构的。exec Command里输入的是在远程服务器上要执行的指令。

    构建部署配置

  • 项目构建后会有构建历史,点击进去,选择“Console Output”就可以查看构建过程中的执行记录

项目回滚

  • 上面虽然实现了项目的自动部署,但是有时部署失败的时候我们需要回滚到指定版本的构建,这样才能更灵活的进行项目的构建部署。我们可以选择“参数化的构建过程”进行传递不同的参数来选择是进行新的构建还是回滚
  • 如果要在实现回滚,一定要在构建后将,构建完成的文件进行存档,方便以后回滚的时候使用

    构建后存档

  • 使用参数化构建过程,让后面的脚步可以根据不同的变量执行不同的操作。添加“Choice”参数配置不同的选项,让选择发布还是回滚,添加“String Parameter”参数来传递要回滚的版本号。

    参数和构建过程

  • 构建选择“Execute Shell”的方式,自己根据变量,自定义构建的脚本,此时如果是发布安装maven的构建过程进行新的构建,如果是回滚,知道历史构建后的文件,复制到当前构建结果目录。

    构建脚本

  • 点击构建,根据不同的参数选择发布还是回滚,回滚的时候填写要回滚到的历史版本号

    构建页面

作者:寻梦的尕柳
链接:http://www.jianshu.com/p/dceaa1c7bb49
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用jenkins进行项目的自动构建部署相关推荐

  1. Jenkins自动构建部署项目

    1. 楔子 在实际开发中,经常需要编译.静态代码检查.自动化测试.打包.部署.启动等一连串重复机械的动作,浪费时间.而且容易出错,而Jenkins就是专门Continuous integration( ...

  2. 5分钟快速掌握Jenkins,项目一键自动部署

    5分钟快速掌握Jenkins,项目一键自动部署 目录 前言 Jenkins是什么? Jenkins环境安装搭建 Jenkins基本使用介绍 Jenkins快速构建项目,项目自动化部署 学习总结 前言 ...

  3. 用Ant实现Java项目的自动构建和部署

        Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.        ...

  4. jenkins和docker实现自动化构建部署

    应用场景 程序员开发应用,开发后需要提交gitlub,然后从gitlab拉取代码,进行构建,发布到tomcat中然后发布看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能把 ...

  5. Jenkins +maven+tomcat自动构建部署(学习笔记三十六)

    https://my.oschina.net/denglz/blog/524154 摘要: jenkins + maven + svn + tomcat 自动部署 jenkins  是做什么用的,如果 ...

  6. 使用Docker+Jenkins自动构建部署

    转载自 https://segmentfault.com/a/1190000012921606 环境 阿里云ESC,宿主机服务器安装Docker,在安全规则中确认8080端口开启. 客户端mac 运行 ...

  7. jenkins自动构建部署vue

    文章目录 简介 1.jenkins安装 1.1.安装JDK 1.2.安装jenkins 1.3.配置jenkis的端口 1.4.启动jenkins 1.5.打开jenkins 2.发布vue项目 2. ...

  8. Gitlab+Jenkins+Artifactory, CI/CD自动构建发布环境搭建使用实践

    CI/CD自动构建发布环境搭建使用实践 通过C/C++的cmake工程示例项目,构建Gitlab+Jenkins+Artifactory自动构建发布环境.其中 Gitlab提供源码仓库功能,通过web ...

  9. 安装Jenkins及配置自由风格自动打包部署

    安装Jenkins 拉取Jenkins镜像 docker pull jenkinsci/blueocean 运行镜像 docker run -u root -d -p 8080:8080 -p 500 ...

最新文章

  1. kohana中的路由规则
  2. snipaste滚动截图方法_电脑必备!这个截图神器比QQ截图更好用
  3. 数据结构之:链表详解
  4. Java @override报错的解决方法 .
  5. 如何 给给软件开发 添加 代理_敏捷开发是如何被跑偏的
  6. 六张图|教开发者该如何应对“中年危机”
  7. 堆排序的应用-优先级队列
  8. jsonp/ajax 自己的一些总结
  9. 深度学习如何有效攻克鲁棒性的场景重建难题?
  10. android迷宫源代码,迷宫 c++源代码(Maze c++ source code).doc
  11. win7+nfs文件服务器,win7如何挂载nfs服务器
  12. php读取 rinex,用Pandas读取GPS RINEX数据
  13. uva 1395 Silm Span 【MST-Kruskal】
  14. matplotlib入门-直方图、饼图、散点图
  15. seekbar自定义android,Android自定义SeekBar实现视频播放进度条
  16. android5.0刷机,一加手机怎么升级安卓5.0 一加手机刷Android 5.0教程
  17. stm32解锁电调、电机速度控制
  18. vue随机头像与昵称
  19. 【安全狗高危安全通告】OpenSSL存在远程代码执行漏洞和拒绝服务漏洞
  20. android仿小米指南针

热门文章

  1. 10个机器学习人工智能开发框架和AI库(优缺点对比表)/贪心学院
  2. scrollwidth ,clientwidth ,offsetwidth 三者的区别
  3. JAVA 重写重载/多态/抽象类/封装/接口/包
  4. MyBatis 快速入门
  5. solaris11-text-安装GUI(gnome)
  6. ES5 getter setter
  7. Install OpenStack Kilo Dashboard wiht Nginx + uWSGI On RHEL7.1
  8. python列表相关函数_python中列表(list)相关的函数
  9. 关键词联想关联 php,ECSHOP商品关键词模糊分词搜索插件,商品列表关键字加红功能...
  10. JAVA生产环境验证_Java生产环境下性能监控与调优详解