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环境(配置信息列出)
- 名称 test01
- 描述 192.168.2.210
- 并发构件数 8 (根据cpu核数填写)
- 远程工作目录 /root/.jenkins/workspace(最好保持一致)
- 标签 test01(唯一)
- 用法 只允许运行绑定的Job
- 启动方式 SSH slave agents
- 可用性 尽量保持代理在线
- 节点属性中写上工具位置(与主保持一致)
(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”的下拉选项。退出后可以删除任意的视图