文档章节

一步步搭建jenkins持续集成平台

彼得
 彼得
发布于 2014/03/28 11:19
字数 1400
阅读 8752
收藏 13
点赞 0
评论 0

【持续集成相关工具集】:

CI-Server(Jenkins/Hudson.....)

代码管理工具(SVN/git...)

java框架(maven)

覆盖率工具(c++:gcov  java:maven cobertura插件)

静态扫描插件(jenkins插件)

覆盖率报表合并工具

jenkins二次开发api

apache +php +codeiginter 配置

mysql +python 用来管理数据库

python-dev 下载链接

........... 笔者将来会专门在持续集成板块介绍相关的工具集合


【安装Jenkins配置启动】: 

  apache-tomcat-6.0.37-src.tar.gz + jenkins.1.556.war 自己搜索下吧

  tomcat/bin下全部chmod +x ./*

  把jenkins.war 拷贝到 tomcat/webapps下

  启动tomcat/bin 下startup.sh 查看8080端口是否启动

  浏览吧: http://192.168.1.xxx:8080/jenkins  

  若想从局域网别的机器访问,则修改tomcatxxx/cong/server.xml 

 Host name="xxx.xxx.xxx.xxx"

 Engin name="xxx.xxx.xxx.xxx"

 同时设置防火墙 (局域网其他机器打不开时可以试试)

 iptables -I INPUT -p tcp --dport 8080 -J ACCEPT

 iptables -I OUTPUT -p tcp --dport 8080 -J ACCEPT

【jenkins重启】

 cd tomcat/bin/

 catalina.sh stop

 kill pid(java)

 catalina.sh bin

【增加Slave节点】

1.salve初始化帐号(例:主10.129.145.112 新Slave:10.209.23.90)

useradd jenkins -m -d /data/home/jenkins #创建jenkins帐号

2.拷贝jenkin主server上的slave.jar包 /usr/local/tomcat/webapps/jenkins/WEB-INF/slave.jar 到新slave的 /data/home/jenkins/slave.jar

3.配置:

1).系统管理->节点管理->新建节点 10.129.145.112:8081/jenkins/computer/new

2).节点名称:slave_10.209.23.90

3).选择DumbSlave

4).必填:

Name:slave_10.209.23.90

Description:描述一下机器类型如:64位tlinux(rh)系统

ofexecutor:4 [4核机器]

Remote FS Root:/data/home/jenkins [之前创建好的jenkins帐号主目录]

Lables:10.209.23.90 [标签,填ip,创建项目时要指定在某台机器上执行]

用法:只允许运行绑定到这台机器上的Job

Lanuch Method:Lanuch slave agents on unix machines via SSH

高级:

Host:10.209.23.90 [再填一次slave的ip]

Username:jenkins [Slave的jenkins帐号]

Password:xxxxxxx [Slave的jenkins密码]

Port:36000

JavaPath:/usr/xxxxx/bin/java [java实际的可执行路径 which java]

其他不动,保存


【maven环境配置】

maven理解:参考链接

maven是一套java项目管理工具,使用依赖库有两种情况:

a) 有外网:不解释

b) 无外网:有搭好的私服(http://10.128.36.xx:8080/nexus/index.html#welcome)

需要在mvn的conf目录下修改setting.xml

<server>   <!--【这两个放在servers下】-->
    <id>tdwmirror</id>
    <privateKey>deployment</privateKey>
    <passphrase>deployment</passphrase>
</server>

<server>
    <id>tdwmirror-snapshots</id>
    <username>deployment</username>                   
    <password>deployment</password>
</server>

<mirror>    <!--【这个放在mirrors下】-->
    <id>tdwmirror</id>
    <mirrorOf>central</mirrorOf>
    <name>tdw mirror</name>
    <url>http://10.128.36.xx:8080/nexus/content/groups/public</url>
</mirror>

【问题汇总】

  1.  在系统设置中提示:Your container doesn't use UTF-8 to decode URLs. If you use non-ASCII characters as a job name etc, this will cause problems. See Containers  and Tomcat i18n for more details. 或者,在新建项目时,设置Repository URL如果还有中文,会提示错误。 可以在 Tomcat 的服务器配置文件中添加 URIEncoding 属性。

    解决:修改 $TOMCAT_HOME/conf/server.xml  => <Connector port="8080" URIEncoding="UTF-8"/>

  2. tomcat启动不了

    解决:检查java版本,tomcat版本 apache-tomcat-7.0.52 笔者直接下载的

    jdk的版本(链接):javac 1.6.0_16  java version "1.6.0_16"

    Java(TM) SE Runtime Environment (build 1.6.0_16-b01)

    Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)

    tomcat版本(链接)apache-tomcat-7.0.52

  3. jenkins主目录被指定到了/root/.jenkins  如何修改

    解决:$TOMCAT_HOME/bin/catalina.sh 在 echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR" 下添加

    export CATALINA_OPTS="$CATALINA_OPTS -DJENKINS_HOME=/data/home/jenkins"

  4. jenkins服务突然没了。看最后一次构建输出:FATAL:PermGen space

    解决:$TOMCAT_HOME/bin/catalina.sh 在 echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR" 下添加

    JAVA_OPTS="-server -XX:PermSize=128M -XX:MaxPermSize=512M" 

  5. WARNING: Could not intialize the host network interface on nullbecause

    解决:kill 所有jenkins相关的java进程,然后重启tomcat startup.sh 参考链接

  6. 权限问题:hudson.security.AccessDeniedException2: anonymous is missing the Administer


        解决:有意识的避免安装启用权限后没法用,但还是掉坑里了,毕竟装jenkins不是经常性的,这里再次做记录。要           修改config.xml 这个配置文件是jenkins的,在JENKINS_HOME 目录下, <useSecurity>false</useSecurity>


        配置好了启动后先做两件事: a) 访问控制->安全域->Jenkins专有用户数据库->允许用户注册

         b) 访问控制->授权策略->安全矩阵->添加用户/组(如peterguo)->赋予peterguo和匿名用户所有权限。


【Maven 私服】

 nexus: http://blog.csdn.net/xuke6677/article/details/8482472

【SVN 配置使用-我的示例】

step1:安装略

step2:创建仓库

mkdir /windows/C/svnroot

svnadmin create svnroot/svndata 

step3:配置仓库

vi conf/[svnserver.con|passwd|authz] .... 网上很多

step4:导入库文件

svn import /home/peterguo/workspace/svn_test -m "create svn_test" file:///windows/C/svnroot/svndatat

step5:启动svn服务(指定服务目录)

svnserve -d --listen-host 192.168.1.104 -r /windows/C/svnroot/

step6:使用svn客户端签出代码

svn co svn://192.168.1.104/svndata    

SVN FAQ:http://subversion.apache.org/faq.zh.html

【Apache服务】

 如果局域网别的机器不能访问:找到httpd.conf 找到 listen 80 :

 修改 Allow from all

 修改 listen 80 -> listen 192.168.1.xxx:80

 service apache2 restart 

 用netstat -nlpt | grep 80 查看

 iptables -I INPUT -p tcp --dport 80 -j ACCEPT

 iptables -I OUTPUT -p tcp --dport 80 -j ACCEPT


[reboot all]

service apache2 start
cd /usr/share/tomcat6/bin; sh catalina.sh start
svnserve -d --listen-host 192.168.1.104 -r /windows/C/svnroot/
service mysql start
ifconfig eth0 192.168.1.104 netmask 255.255.255.0

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT 

iptables -I INPUT -p tcp --dport 80 -j ACCEPT


【二次开发】

必备:MySQLdb、jenkinsAPI 、php、fushionchart、python、codeigniter ....

安装环境时必然出现很多问题,谷歌就是你的帮手,建议安装MySQLdb使用rpm包  去这里找rpm包 链接

----------------------------------------------待续------------------------------------


权限管理(不同的用户对不同的项目具有不同的权限)链接

© 著作权归作者所有

共有 人打赏支持
彼得

彼得

粉丝 39
博文 122
码字总数 38726
作品 0
深圳
程序员
基于Jenkins 快速搭建持续集成环境

持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile)...

openthings
2015/12/09
338
0
fir.im weekly - 「 持续集成 」实践教程合集

我们常看到许多团队和开发者分享他们的持续集成实践经验,本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等项目搭建持续集成的实践,以及一些国内外公司的内部持续集成系统的经验,...

风起云飞fir_im
2016/05/09
69
0
在阿里云环境下搭建基于SornaQube的自动化安全代码检测平台

一、背景和目的 近年来,随着新业务、新技术的快速发展,应用软件安全缺陷层出不穷。虽然一般情况下,开发者基本都会有单元测试、每日构建、功能测试等环节来保证应用的可用性。但在安全缺陷...

唐俊飞
01/13
0
0
使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

前言 上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以及怎么将自己的模块上传至nex...

凯文加内特
2015/11/05
0
0
Jenkins+Ant+Jmeter搭建持续集成的接口测试平台(转)

一、什么是接口测试?   接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管...

286090326
2017/07/31
0
0
jenkins+ant+jmeter搭建持续集成的接口测试平台实例

一、什么是接口测试? 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过...

测试dog
2016/04/15
367
0
基于 Jenkins 快速搭建持续集成环境

简介: 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础。Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能。本文正是...

IBMdW
2011/11/24
20.8K
8
基于Dubbo的分布式系统架构(四)

基于 Dubbo 的分布式系统架构视频教程 作者:(原著)吴水成,840765167@qq.com,wu-sc@foxmail.com 搭建敏捷高效的持续集成管理平台 1、持续集成介绍 持续集成是一种软件开发实践团队开发成...

有什么关系呢
2016/11/16
161
2
Jenkins Gitlab持续集成打包平台搭建

相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点...

nineep
06/27
0
0
借持续集成的思想搞接口测试自动化

前言 前段时间的工作中有接触到接口测试,测试代码以maven工程的形式编写,使用testNG测试框架。工作中,每次执行测试都是在IDE里手动执行测试代码,很是麻烦,再考虑到后期的回归测试需要,...

Ivanli1990
2017/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

istio 路由实例解析

根据链路追踪图如上: 资料:https://istio.io/docs/guides/bookinfo/ 流程解析: 1. 访问地址: http://IP:31380/productpage kubectl get svc --all-namespaces -o wide istio-system isti......

xiaomin0322
9分钟前
2
0
Centos7通过yum安装jdk8

先查看系统是否已有自带的jdk rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj 如果没有输出信息,则说明系统没有安装。如果有输出信息,则执行下面的命令卸载 rpm -qa | grep jav...

iplusx
11分钟前
0
0
字体的动画

树不要皮必死无疑,人不要脸天下无敌。如果你此时正在被承受着不公平的待遇,不要伤心不要气馁,吃亏要趁早。 .menu ul li a { position:relative; color: #FFFFFF; text-decoration:...

Js_Mei
11分钟前
0
0
新手学习hadoop发行版本选择介绍

Hadoop对于从事互联网工作的朋友来说已经非常熟悉了,相信在我们身边有很多人正在转行从事hadoop开发的工作,理所当然也会有很多hadoop入门新手。Hadoop开发太过底层,技术难度远比我们想象的...

左手的倒影
12分钟前
0
0
iOS定时器循环引用问题解决

我们通常使用NSTimer或CADisplayLink会使用以下方式 //定义@property (nonatomic, strong)NSTimer *timer;//实现self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:p......

xiaobai1315
12分钟前
0
0
给wordpress程序提速

在上一节中,我们介绍了wordpress CMS主题提速,本节我们接着介绍wordpress主题提速:gravatar用户头像缓存和google字体去除。 gravatar头像受到全世界网络用户的喜爱,设置好gravatar头像后...

hero2019
15分钟前
0
0
DevExpress v18.1最新版帮助文档下载大全

DevExpress v18.1.4帮助文档下载列表大全来啦!包含.NET、VCL、HTML/JS系列所有帮助文档,提供CHM和PDF两个版本。除已停止更新的Silverlight、Windows 8外,其余均为最新版本。 文章底部扫描...

Miss_Hello_World
18分钟前
0
0
Unity Shader中各种空间及变换方法

前几天尝试写一个传送门的shader,发现自己对坐标之间的变换掌握的不够熟练,趁着这阵子想整理shader相关的知识点,先把各种空间及之间转换整理一下。 1 模型空间-世界空间-观察空间-裁剪空间...

爽歪歪ES
24分钟前
0
0

定义和应用 栈(stack)是一种特殊的线性表,其插入(也称入栈或压栈)和删除(也称出栈或弹栈)操作都在表的同一端进行。这一端被称为栈顶(top)另一端称为栈底端(bottom)。 我们生活中其实...

Frost729
25分钟前
0
0
数据分析挖掘学习干货:大数据处理技术的总结与分析

一 数据分析处理需求分类 1 事务型处理 在我们实际生活中,事务型数据处理需求非常常见,例如:淘宝网站交易系统、12306网站火车票交易系统、超市POS系统等都属于事务型数据处理系统。 这类系...

加米谷大数据
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部