Jenkins升级文档

考虑到现有环境使用的jenkins版本v1.614过旧,很多插件不支持更新并且test03已废弃。决定升级jenkins版本到v2.117,部署多节点架构

环境列表

升级前

升级后

dev环境

192.168.2.220

192.168.2.220

test01

192.168.2.220

192.168.2.210

test02

192.168.2.219

192.168.2.211

pro

192.168.2.218

192.168.2.218

说明:将test01环境和test02环境整合在一起,并作为子节点单独运行,通过主jekins(2.209)进行管理

1. 准备工作

关闭防火墙
systemctl stop firewalld.service 
systemctl disable firewalld.service
关闭selinux 
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
设置主机名
hostnamectl set-hostname jenkins-master
hosts文件增加   192.168.2.209  jenkins-master
安装java (有部分应用需要jdk1.6)
/usr/java/jdk1.6.0_45
/usr/java/jdk1.8.0_121
配置环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_121
export PATH=$PATH:$JAVA_HOME/bin

export MAVEN_HOME=/opt/apache-maven-3.3.3
export PATH=${PATH}:${MAVEN_HOME}/bin

2.启动jenkins

项目使用了tomcat8 目录/opt/apache-tomcat-8.5.30
还需拷贝maven的配置文件setting.xml

优化tomcat配置
CATALINA_OPTS="$CATALINA_OPTS-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
CATALINA_OPTS="$CATALINA_OPTS  -Xms1024M -Xmx4096M"

context.xml增加
<Resources cachingAllowed="true" cacheMaxSize="102400" />

放入jenkins.war项目 启动tomcat 访问 http://192.168.2.209:8080/jenkins/

3.添加从节点

  • 添加两个从节点,分别构建test01和test02环境(配置信息列出)
  1. 名称 test01
  2. 描述 192.168.2.210
  3. 并发构件数 8 (根据cpu核数填写)
  4. 远程工作目录 /root/.jenkins/workspace(最好保持一致)
  5. 标签 test01(唯一)
  6. 用法 只允许运行绑定的Job
  7. 启动方式 SSH slave agents
  8. 可用性 尽量保持代理在线
  9. 节点属性中写上工具位置(与主保持一致)
(JDK)jdk1.6  /usr/java/jdk1.6.0_45 
(JDK)jdk1.8  /usr/java/jdk1.8.0_121 
(Maven)maven3.5.3 /opt/apache-maven-3.5.3

4.新建Jobs

  • 版本升级跨度过大,拷贝的配置文件不通用,需手动建立
#导出配置jobs下每个项目的config.xml配置信息
File01=/opt/test01.txt
File02=/opt/test02.txt
Jobs=/root/.jenkins/jobs

cd $Jobs
ls -l |grep test01 |awk '{print $9}' >/tmp/test01
ls -l |grep test02 |awk '{print $9}' >/tmp/test02
cat /tmp/test01 |while read line
    do
echo $line >>$File01
cd $Jobs/$line
cat config.xml |grep http  >>$File01
done
cat /tmp/test02 |while read app
do
echo $app >>$File02
cd $Jobs/$app
cat config.xml |grep http  >>$File02
done
-------------------------------------------------------------------
#拷贝test02环境配置脚本(复制文件夹修改配置config.xml中test02)
Jobs=/root/.jenkins/jobs
cd $Jobs
ls -l |grep test02 |awk '{print $9}' >/tmp/test02
cat /tmp/test02 |while read line
  do 
echo $line
sleep 2
var=${line%%_*}_test01
 cp -rp $line $var
 sed -i 's@test02@test01@g' $var/config.xml
 done

手工添加一个新项目

  • 限制项目的运行节点选择(test01/test02)
  • 轮询SCM H/10 * * * *(每10分钟检测svn提交记录,自动构建)
  • Goals and options -Dmaven.repo.local=/root/.test01/repository clean deploy -P test01 findbugs:findbugs pmd:pmd

手动添加 titan-jr-project_test01 git项目

  • 需要配置jekins 机器ssh免密码登录 git机器 jenkins机器上操作
  • /etc/ssh/sshd_config 打开 AuthorizedKeysFile .ssh/authorized_keys
  • ssh-keygen -t rsa
  • cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
  • ssh-copy-id -i ~/.ssh/id_rsa.pub git@192.168.2.94
  • chmod 600 ~/.ssh/authorized_keys
  • chmod 700 ~/.ssh
  • 执行上述步骤后需执行系统配置——读取配置——即可看到Jobs

5.常见问题

  • 报错个 Jenkins实例使用了废弃的协议JNLP-connect,JNLP2-connect
    系统管理-代理-代理协议-勾选去掉-Java Protocol/3
  • 安装提示jenkins离线,无法安装插件 http://192.168.2.209:8080/jenkins/pluginManager/advanced(访问地址修改插件下载地址)
    修改jenkins 插件下载地址为http://mirror.xmission.com/jenkins/updates/update-center.json【系统设置,插件管理-高级-升级站点】
  • 删除默认all视图删除默认all视图(添加jobs时使用正则表达式(.* 所有))
    系统管理-系统设置”页面,更改“Default view”的下拉选项。退出后可以删除任意的视图