Jenkins 迁移
jenkins ver 2.71 for linux
目录
1、环境部署
2、 jenkins安装
3、遇到的问题
一、安装前环境部署
查看系统信息
#uname -a
Linux localhost 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m
需要安装的依赖包jdk1.8、apache-ant-1.10.1、svn1.8、maven3.3.9、git2.9.2
1、jdk1.8安装
#cd /usr/local/src/
#wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz?AuthParam=1501510958_03d6d6330996ea7e90de6e98f2bec4b0
#mv jdk-8u144-linux-x64.tar.gz\?AuthParam\=1501510958_03d6d6330996ea7e90de6e98f2bec4b0 jdk-8u144-linux-x64.tar.gz
#tar zxvf jdk-8u144-linux-x64.tar.gz -C /var/lib/java
添加环境变量
#vim /etc/profile
JAVA_HOME=/var/lib/java/jdk1.8.0_144
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
#source /etc/profile
查看java版本
#java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
2、安装 Ant
从http://ant.apache.org 上下载tar.gz版ant,本次是从原来的服务器上面拷贝,apache-ant-1.10.1,
# pwd
/var/lib/apache-ant-1.10.1
3、svn客户端安装
由于项目中使用到svn,需要在机器上安装svn客户端。注意:svn版本必须1.7或1.7以上,由于yum安装是1.6,所以需要手动指定svn 的yum源,如果之前有安装请先卸载
添加svn1.8yum源
#yum remove subversion
#yum clean
#vim /etc/yum.repos.d/wandisco-svn.repo
[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.8/RPMS/$basearch/
enabled=1
gpgcheck=0
#yum install subversion
#svn --version
svn,版本 1.8.18 (r1800620)
编译于 Jul 5 2017,14:01:30 在 x86_64-unknown-linux-gnu
Copyright (C) 2017 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/
4、maven安装
版本maven3.3.9 注意:不要安装maven3.5版本,不然后期打包会有报错
#cd /usr/local/src/
#wget https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
#tar zxvf apache-maven-3.3.9-bin.tar.gz -C /usr/local/
#cd /usr/local/
# mv apache-maven-3.3.9 maven3
添加环境变量
#vim /etc/profile
export MAVEN_HOME=/usr/local/maven3
export PATH=${MAVEN_HOME}/bin:${PATH}
#source /etc/profile
查看maven版本
#mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/local/maven3
Java version: 1.8.0_144, vendor: Oracle Corporation
Java home: /var/lib/java/jdk1.8.0_144/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-642.el6.x86_64", arch: "amd64", family: "unix"
5、git客户端安装
#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
#yum install gcc perl-ExtUtils-MakeMaker autoconf
#cd /usr/local/src/
#wget https://github.com/git/git/archive/v2.9.2.tar.gz
#tar zxvf v2.9.2.tar.gz
# cd git-2.9.2/
# make configure
#./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv
#make && make insatll
#ln -s /usr/local/git/bin/git /usr/bin/git
#git --version
git version 2.9.2
二、jenkins 2.7.1 安装
jenkins安装方式有三种方式具体不在这详解,本次使用的是在官网下载war包放在tomcat;
#cd /usr/local/src
下载tomcat、jenkins包
# wget http://apache.fayea.com/tomcat/tomcat-8/v8.5.16/bin/apache-tomcat-8.5.16.tar.gz
# wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war
创建jenkins用户
#useradd jenkins
#passwd jenkins
安装Tomcat8.5
#tar -zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/
#cd /usr/local/
# mv apache-tomcat-8.5.16 tomcat8
将jenkins.war放tomcat webapps目录下
#cp /usr/local/src/jenkins.war /usr/local/tomcat8/webapps/
在/etc/profile/文件中指定Jenkins home目录
#vim /etc/profile
export JENKINS_HOME=/var/lib/jenkins
修改tomcat属主属组
#chown -R jenkins:jenkins /usr/local/tomcat8
切换用户启动Tomcat
#su jenkins
$/usr/local/tomcat8/bin/startup.sh
浏览器访问http://ip:8000/jenkins
从Jenkins初始化启动日志上可以看到初始化密码存放在
/var/lib/jenkins/secrets/initialAdminPassword
Paste_Image.png
关闭Tomcat
$ ps -ef | grep jenkins
jenkins 6540 1 1 11:49 ? 00:06:24 /var/lib/java/jdk1.8.0_144/bin/java -Djava.util.logging.config.file=/usr/local/tomcat8/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat8 -Dcatalina.home=/usr/local/tomcat8 -Djava.io.tmpdir=/usr/local/tomcat8/temp org.apache.catalina.startup.Bootstrap start
root 7751 7730 0 21:40 pts/0 00:00:00 grep jenkins
$kill -9 6540
将原Jenkins home目录拷贝到现Jenkins的home目录/var/lib/jenkins,
将现/var/lib/jenkins 下的文件移走或删除
原来的jenkins是有yum安装默认jenkins也在/var/lib 下,如有调整可以查看/etc/sysconfig/jenkins文件
打包原jenkins的home目录并scp到新jenkins上
#tar zcvf jenkins.tar.gz jenkins
#scp -P22 jenkins.tar.gz root@ip(新机器):/var/lib
新机器解压
#tar zxvf jenkins.tar.gz
切换用户启动tomcat
#su jenkins
$/usr/local/tomcat8/bin/startup.sh
打开浏览器测试http://ip:8080/jenkis
输入账号密码,直接为原jenkins集成crowd的账号登陆
点击系统设置----系统设置,里面的选项的home路径改成和安装指定的路径一致,应用保存即可
Paste_Image.png更改git路径
系统设置----Global Tool Configuration 删除原来的,添加现环境的路径
三、 打包遇到的问题总结:
1、NoSuchFieldError:DEFAULT_GLOBAL_SETTINGS_FILE 问题
Paste_Image.png
解决办法:因为maven3.5与jenkins会产生bug,所以将maven3.5更换为3.3.9
2、打包提示error=13,权限不够,
思路1:以为是权限问题,使用root启动tomcat测试 结果图2报错,实际上这个路径是存在的
思路2:图一有提示svn,可能是客户端未安装svn照成,测试后成立
3、启动jenkins报错
Paste_Image.png照成原因:使用root启动tomcat
解决办法:更改/var/lib/jenkins 权限,使用jenkins重启tomcat解决
#chown -R jenkins:jenkins /var/lib/jenkins
4、The svn command failed
Paste_Image.png解决办法:卸载低于1.7版本的svn客户端,安装svn1.7或者更高
5、[ERROR]svn:E230001
造成原因:svn 地址 是https造成主机不信任
解决办法:信任该主机,更新svn
#cd /var/lib/jenkins/workspace/srv_message_sender/msgsender
Paste_Image.png
6、git安装报错/bin/sh: line 1: asciidoc: command not found
#wget http://sourceforge.net/projects/asciidoc/files/asciidoc/8.6.9/asciidoc-8.6.9.tar.gz
解压 ./confluen make&&make install
7、error svn:W000013(报错图2)
造成原因:使用supervisord管理启动jenkins,jinkins.ini 配置如下,(使用supervisord启动会读/root/.subversion/servers 文件,提示没权限,home目录为/root)
如若切换jenkins用户启动不报错(jenkis用户启动时home路径为/home/jenkis)。
结论:home 路径路径不对(可以在jenkins中查看home路径 系统管理---脚本命令行输入以下命令,查看home图)
def command = "echo \$HOME"
println new ProcessBuilder('sh','-c',command).redirectErrorStream(true).start().text
查看home.png
[program:jenkins]
command=/usr/local/tomcat8/bin/catalina.sh run
process_name=%(program_name)s
directory=/usr/local/tomcat8
startsecs=1
startsecs=5
stopsignal=INT
user=jenkins
redirect_stderr=true
stdout_logfile=/var/log/%(program_name)s.log
图2.png
解决思路:
1、使用supervisord 启动报错,home路径不对,能不能在supervisord 的客户端配置文件中指定home路径,修改jenkins.ini,重启supervisord ,登录jenkis 系统设置------脚本命令行-输入home图命令,result 还是显示/root
[program:jenkins]
command=/usr/local/tomcat8/bin/catalina.sh run
process_name=%(program_name)s
directory=/usr/local/tomcat8
environment=HOME="/home/jenkins"
startsecs=1
startsecs=5
stopsignal=INT
user=jenkins
redirect_stderr=true
stdout_logfile=/var/log/%(program_name)s.log
思路二:(在思路一修改后,未调整)系统上更改jenkins用户的home目录,使用supervisord 重启服务,登录jekins, 系统设置-----命令行输入图二中命令,发现result 是显示/home/jenkis,能打包,但是这个理论上如果生效的话是应该显示/var/lib/jenkis,所以感觉是思路一生效了,然后测试下了思路一,果然是它生效了
usermod -d /var/lib/jenkis jenkins
结论:刚按照思路一修改,当时是没有生效(不清楚是不是需要一段时间),然后按照思路二修改后思路一的生效了,不清楚修改系统上的jenkins home目录和思路一上面的修改有没有关系?、
现在的解决办法:思路二的jenkins home未切会原来的/home/ 下,还是在/var/lib/jenkins 下,在supervisord 中指定jenkis的home 目录。
8、qzgs项目打包报错,问题1 git地址更改
问题2:/var/lib/jenkins/workspace/game_qzgs/ 下面有两个软连接 到 /data/ 下面 需要在新机器上面创建两个文件夹 bulid 和game_apks bulid文件夹是打包出来包放的路径, gane_aps里面的文件是需要在原来的项目中去拷贝:scp -P22 g103_3.tar.gz root@172.16.100.50:/data/game_apks/ 然后解压更改chown 即可
进入qzgs的空间内更改git地址(图一)
git remote set-url origin ssh://liyan@172.16.100.50:29418/users/liyan.git
{25D8B64E-4AF2-EF04-544C-8F6B8B5372E3}.jpg
图一.png
附:
jenkins更改主目录三种方式:http://www.cnblogs.com/yangxia-test/p/4367999.html
安卓项目打包报错可以参考Android Command Line Tools:https://github.com/twotwo/ci_scripts