一步步搭建jenkins持續集成平臺

【持續集成相關工具集】:php

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

代碼管理工具(SVN/git...)
java

java框架(maven)python

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

靜態掃描插件(jenkins插件)linux

覆蓋率報表合併工具c++

jenkins二次開發apigit

apache +php +codeiginter 配置web

mysql +python 用來管理數據庫sql

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包 連接

----------------------------------------------待續------------------------------------


權限管理(不一樣的用戶對不一樣的項目具備不一樣的權限)連接

相關文章
相關標籤/搜索