【转】一步步搭建jenkins持续集成平台
程序员文章站
2022-05-13 18:54:58
...
摘要 持续集成作为最先进的项目实践之一,逐渐在受到天朝软件公司的重视,笔者从事近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 持续集成 配置 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
推荐阅读
-
centos下GitLab+Jenkins持续集成环境搭建(安装jenkins)
-
centos下GitLab+Jenkins持续集成环境搭建(安装jenkins)
-
基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境的详细教程
-
Jenkins持续集成01—Jenkins服务搭建和部署
-
在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法
-
jenkins+gitlab+ansible持续集成平台部署(二)
-
基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境的详细教程
-
Jenkins持续集成01—Jenkins服务搭建和部署
-
【转】一步步搭建jenkins持续集成平台
-
Jenkins + Docker + SVN + Maven 持续集成环境搭建过程中遇到的问题