`
tog
  • 浏览: 2189 次
社区版块
存档分类
最新评论

【转】一步步搭建jenkins持续集成平台

阅读更多
摘要 持续集成作为最先进的项目实践之一,逐渐在受到天朝软件公司的重视,笔者从事近1年半时间的相关工作,也无法游刃有余,用了很久jenkins了,也没有做个入门介绍给大家,惭愧,最近在迁移,顺便重新搞下,记录以飨读者.
jenkins 持续集成 配置 tomcat

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<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>
【问题汇总】

在系统设置中提示: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"/>

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

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

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

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

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

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

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

WARNING: Could not intialize the host network interface on nullbecause

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

权限问题: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包 链接

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



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

原文链接http://my.oschina.net/sanpeterguo/blog/213717
分享到:
评论

相关推荐

    Jenkins持续集成从入门到精通.pdf

    Jenkins持续集成从入门到精通.pdf

    搭建jenkins持续集成环境详细指导

    Jenkins是一款基于Java开发的开源持续集成工具,源自Hudson,主要用于自动化各种重复性的任务,如构建、测试和部署软件。它在软件开发过程中扮演着重要的角色,帮助团队实现快速反馈和提高产品质量。 Jenkins的核心...

    Jenkins持续集成文档

    Jenkins是一款流行的开源自动化服务器,主要用于自动化各种任务,尤其是持续集成(Continuous Integration,简称CI)和持续部署(Continuous Deployment,简称CD)。持续集成是一种软件开发实践,在这种实践中,开发...

    jenkins持续集成Loadrunner

    jenkins是一款流行的持续集成工具,而Loadrunner是一款功能强大的性能测试工具。将Loadrunner集成到jenkins中,可以实现自动化的性能测试,提高测试效率和测试覆盖率。本文将详细介绍如何使用jenkins的插件集成...

    Jenkins持续集成从入门到精通1

    1. 安装相关依赖 2. 启动ssh服务&设置为开机启动 3. 设置postfix开机自启,并启动,postfix支持gitlab发信功能 4. 开放ssh以及

    jenkins持续集成环境搭建步骤

    ### Jenkins 持续集成环境搭建详解 ...通过以上步骤,我们可以成功地搭建起一个完整的 Jenkins 持续集成环境,实现软件项目的自动化构建、测试与部署。这不仅极大地提高了开发效率,还确保了代码质量的一致性和可靠性。

    jenkins 持续集成部署 文档

    Jenkins作为一个强大的持续集成与持续交付工具,其配置的灵活性与扩展性是保证高效自动化流程的关键。**全局配置**部分主要包括对Jenkins服务器的一些基础设置,如工具配置、环境变量设定等。 - **...

    Jenkins持续集成测试

    Jenkins持续集成测试说明文档。适用于持续集成环境配置。敏捷开发必备工具

    Jenkins持续集成工具

    Jenkins是一款开源的持续集成(Continuous Integration, CI)服务器,它旨在通过自动化构建、测试和部署软件,以提高开发效率和软件质量。在Java平台上运行,Jenkins支持多种语言和框架的项目,是全球广泛使用的CI/...

    jenkins(持续集成)

    Jenkins 是一款强大的开源持续集成(Continuous Integration, CI)工具,它被广泛应用于软件开发过程中,以自动化构建、测试和部署任务。通过Jenkins,开发者可以实时监控代码更改,自动触发构建过程,确保项目的...

    Jenkins持续集成部署架构图.pdf

    适用于大部分公司的集成部署架构图,大家可以参考下的根据自己情况进行修改的。 只是给各位参考下的,需要根据公司的集成情况进行设计。

    基于Jenkins_快速搭建持续集成环境

    Jenkins是一款开源的持续集成工具,提供了一个易于使用的平台,使开发人员能够集中精力于业务逻辑的实现上,同时监控集成中的错误,并通过日志文件和提醒功能提供反馈。Jenkins安装简单,通过下载jenkins.war文件并...

    jenkins持续集成相关包.zip

    Jenkins 是一款开源的持续集成(Continuous Integration, CI)服务器,它被广泛应用于软件开发过程中,以自动化构建、测试和部署任务。这个压缩包“jenkins持续集成相关包.zip”显然是与 Jenkins 相关的资源集合,...

    jenkins+jmeter持续集成.pdf

    Jenkins是一个开源的自动化服务器,它可以用来实现持续集成(CI)和持续部署(CD)。它基于Java编写,能自动化地监控和执行重复性的工作,如编译、测试和打包软件。JMeter是一个开源的性能测试工具,主要用于测试...

    配置linux环境下jenkins持续集成方法-工具

    在IT行业中,持续集成(Continuous Integration,CI)是一种软件开发实践,它强调开发人员频繁地将他们的代码更改合并到共享存储库中,并且每次合并后都会自动构建和测试项目,以便尽早发现并修复问题。Jenkins是...

    基于Kubernetes/K8S构建Jenkins持续集成平台

    首先学习架构设计及目标,然后一步步部署这套架构,**结合JAVA项目具体说明如何使用Jenkins实现企业CI(持续集成)/CD(持续部署/交付)及自动化。通过这个企业案例贯穿软件生命周期,学习实现思路及技巧,学完能...

Global site tag (gtag.js) - Google Analytics