【持續集成相關工具集】: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>
【問題彙總】
在系統設置中提示: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包 連接
----------------------------------------------待續------------------------------------
權限管理(不一樣的用戶對不一樣的項目具備不一樣的權限)連接