jenkins深入浅出

安装:
1、 从官网上下载新版本的Jenkins,https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.89.4/jenkins.war
2、 Jenkins.war放在10.0.10.133的/opt下面,启动方式:nohup java -jar jenkins.war --httpPort=8080 &
3、 jenkins访问地址http://10.0.10.133:8080;完成Jenkins的初始化,(插件选择默认安装)下一步就可以创建项目了
4、 Jenkins的工作目录是/root/.jenkins/workspace
部署:
首先在”系统管理”à”全局工具配置”中配置上jdk的安装位置,以及maven的安装(maven的安装可以选择自动安装,也可以选择从系统安装中获取);(插件的安装,等下面部署具体项目的时候再介绍需要安装那些插件);
再一个就是配置后端管理的节点,这里有个问题就是我下载的是最新版本的Jenkins,安装jdk1.7报错,所以选择的jdk1.8进行安装,但是与后端的jdk版本不一致,这里如果选择配置系统管理里面的”管理节点”进行配置的话,会提示让安装jdk1.8;为了不影响原有版本的使用,这里配置的是”系统管理”à”系统设置”,在里面增加ssh servers也可以达到相同的目的,配置如下:(在这里使用的key进行与远程服务器的通信,首先使133机器能与其它机器无密码登录,然后把133上的私钥拷贝到Jenkins上就可以了)
1、 Datax项目:
新建一个名称为dataxDeploy的并选择自由风格的项目,进去配置,在这里说下有几个重要的点需要注意;一是构建触发器,在这里配置的事Poll scm,配置这个结果就是每隔一段时间去探测源码库中是否更新,更新的话,就会触发构建,配置如下:(本实例配置的是每隔30分钟探测一次,也可以能根据实际的需求更改)
二是在构建配置中选择执行shell,配置如下:(意思就是,进入该项目的工作目录,checkout下来datax项目,并打包成zip的形式)
三是,在构建配置中,选择sendfiles or execute commands over ssh(这个选项是由publish over ssh提供的,安装的插件的方式,“系统管理”à”管理插件”à”可选插件”,直接搜索安装就可以了);安装好之后,里面有几个选项需要注意,name是选择前面已经配置好的ssh servers的name名称,source files就是创建的包名,下面还有一个remove prefix的作用是去除target,这里的datax-all.zip 是直接放在dataxDeploy项目下面的,所以可以以下图这种方式书写,如果是另外一种方式的话,就另当别论了,下个项目会介绍;romote directory是把包放在远程主机的目录地址,Exec command也是在远程主机上执行的bash命令,配置如下图:(可以选择多个远程主机)
2、 Erp项目:
这里构建的是maven项目,源码管理里面配置的是SVN的URL地址,访问的用户名和密码,本地存储的位置,默认是直接存储到项目下面,配置如下:
Maven构建项目可以直接打包,pre steps选项中选择Invoke top-level Maven targets,在goals中写上clean package,意思就是对下载的内容先清理然后进行编译打包(具体是打成war包还是打成jar包,pom文件中会定义),配置如下:
构建完成之后,我们想要做的就是把这个war包发送到远端服务器上,现在就有一个插件Deploy war/ear plugin可以实现,定义本地war路径,定义Tomcat访问的URL地址,以及用户名和密码(这里的用户名和密码是Tomcat manager定义的用户名和密码,具体配置的方法是配置Tomcat的tomcat-users.xml文件,增加入下行:
<rolerolename="tomcat"/>
<rolerolename="role1"/>
<rolerolename="manager-gui" />
<rolerolename="manager-script" />
<rolerolename="manager-status" />
<userusername="tomcat" password="tomcat"roles="tomcat"/>
<userusername="both" password="both"roles="tomcat,role1"/>
<user username="deploy"password="tomcat"roles="manager-gui,manager-script,manager-status" />
然后需要更改webapps\manager\META-INF这个目录下的context文件,把 <ValveclassName="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
给注释掉,重启Tomcat就OK了);具体Jenkins的配置如下:
jenkins深入浅出的更多相关文章
- 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】
背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...
- Jenkins 安装的HTML Publisher Plugin 插件无法展示ant生成的JunitReport报告
最近在做基于jenkins ant junit 的测试持续集成,单独ant junit生成的junitreport报告打开正常,使用Jenkins的HTML Publisher Plugin 插件无 ...
- 【深入浅出jQuery】源码浅析--整体架构
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...
- Python-Jenkins API使用 —— 在后端代码中操控Jenkins
最近在工作中需要用到在后台代码中触发Jenkins任务的构建,于是想到Jenkins是否有一些已经封装好的API类库提供,用于处理跟Jenkins相关的操作.下面就简单介绍下我的发现. Linux C ...
- 在centos7上安装Jenkins
在centos7上安装Jenkins 安装 添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins ...
- 项目持续集成环境(jenkins + SVN + maven + tomcat)
整体流程 每次SVN上代码有变动,触发自动构建动作,并部署到服务器的tomcat上,具体流程: 1.SVN上提交代码修改 2.maven执行Goals 3.将web工程打成war包 4.关闭服务器的t ...
- Jenkins的一个bug-同时build一个项目两次导致失败
我们有一个job A, A只是配置了一些参数,它会去触发模板job B. 我一开始点击构建A, 马上发现参数配置不对,于是撤消了构建,但是我没有发现B已经被触发,我重新配置参数,然后再次构建A,这个时 ...
- 使用Jenkins配置Git+Maven的自动化构建
Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建.自动编译和部署,非常方便. 在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器 ...
- Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)
所要用到的主要插件: [MSBuild Plugin] 具体操作: 1.配置MSBuild的版本 [系统管理]->[Global Tool Configuration]->[MSBuild ...
随机推荐
- HDU 6665 Calabash and Landlord (分类讨论)
2019 杭电多校 8 1009 题目链接:HDU 6665 比赛链接:2019 Multi-University Training Contest 8 Problem Description Cal ...
- SDUTOJ 3374 数据结构实验之查找二:平衡二叉树
题目链接:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/3374.html 题目大意 略. 分析 ...
- vue-lic脚手架中引入font-awesome
1.安装font-awesome npm i font-awesome --production 2.在main.js中引用 import 'font-awesome/css/font-awesome ...
- 使用target属性跳转到指定位置
先上代码,使用frameset将网页分割为三个窗口,上,左和右. 1 <html> 2 <head> 3 <title>Main</title> 4 & ...
- JDK8新特性之方法引用
什么是方法引用 方法引用是只需要使用方法的名字,而具体调用交给函数式接口,需要和Lambda表达式配合使用. 如: List<String> list = Arrays.asList(&q ...
- Redis数据结构之整数集合-intset
当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis会使用整数集合(intset)来存储集合元素. intset是紧凑的数组结构,同时支持16位.32位和64位整数. 结构 struc ...
- 35-Ubuntu-组管理-01-添加组/删除组/确认组信息
组管理 提示: 创建组/删除组的终端命令都需要sudo执行,标准用户没有权限! 序号 命令 作用 01 sudo groupadd 组名 添加组 02 sudo groupdel 组名 删除组 03 ...
- 第十一篇 session和cookie自动登录机制
session和cookie的作用和区别可以在网上查到,这里简单说下,我们使用的http协议本身是种无状态的协议,就是说web服务器接收到浏览器的请求,会直接返回相应内容,并不会检查是哪个浏览器,即浏 ...
- http://localhost:8080 is requesting your username and password
after you startup your tomcat, you type a concrete request url in broswer, the tomcat probably wil ...
- vue组件基础之父子传值
可以看出数据从后端获取过来,最外层的父组件接收数据,子组件不能直接获取,必须由父组件传递,此时使用props,并且父组件的值更新后,子组件的值也会随之更新,但是反过来通过修改子组件props来影响父组 ...