Jenkins 安装迁移记录

最近公司的部署用服务器经常内存不足,于是我把线上的 Jenkins 迁移到了公司内的机器,在此记录下迁移过程。CentOS 的机器,使用 Tomcat 来运行 Jenkins。

JDK 安装及环境配置

我用的是 oracle 的 JDK,也可以使用 OpenJDK。
前往:Oracle JDK ,下载 jdk8:

JDK 下载

yum install jdk-8u201-linux-x64.rpm

/etc/profile 里增加路径信息:

JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH

Tomcat 下载、安装、运行

Tomcat 下载安装

前往 https://tomcat.apache.org/download-90.cgi 下载 Tomcat:

Tomcat download

解压并放到 /usr/local

wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.16/bin/apache-tomcat-9.0.16.tar.gz
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16.tar.gz /usr/local

/usr/local/tomcat/bin/startup.sh 启动 tomcat,此时通过默认的 8080 端口即可访问 tomcat。

添加 Tomcat 服务

将 tomcat 目录下的 catalina.sh 略作修改,作为服务控制脚本:

cp catalina.sh /etc/init.d/tomcat

文件改动1,添加 chkconfig:

#!/bin/sh
# chkconfig: 2345 10 90
...

文件改动2,添加 JAVA_HOMECATALINA_HOME 路径:

# -----------------------------------------------------------------------------

JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
CATALINA_HOME=/usr/local/tomcat

# OS specific support.  $var _must_ be set to either true or false.

之后添加服务:

chmod 755 /etc/init.d/tomcat
chkconfig --add /etc/init.d/tomcat
systemctl start tomcat
systemctl enable tomcat

添加 Jenkins 并运行

使用 .war 文件的方式安装 Jenkins,首先通过脚本 `/usr/local/tomcat/bin/shutdown.sh 停止 tomcat,然后将下载的 jenkins.war 放到tomcat 的 webapps 目录内(这里即 /usr/local/tomcat/webapps),再次启动Tomcat 即可。

更多操作

Jenkins 备份和迁移

备份时打包 Jenkins 数据文件夹(按本文方式安装,默认路径是 /root/.jenkins)和 .war 文件(/usr/local/tomcat/webapps/jenkins.war)即可。
迁移的话先在新服务器配置好 JAVA 和 Tomcat,然后停止新旧俩个服务器的 Tomcat,将原服务器的 Jenkins 数据文件夹打包、转移、解压到新服务器,将 jenkins.war 同样复制到新服务器,启动新服务器的 Tomcat 即可。

内网穿透

使用 frp 内网穿透的方式,实现公网访问 jenkins,附上 frpc.ini 配置文件内容:

[common]
server_addr = xx.xx.xx.xx
server_port = 7000

log_level = warn
log_file = /var/log/frpc/frpc.log
log_max_days = 3

token=xxxxx
user = local

[jenkins]
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = 8080