centos7 jenkins安装、迁移

Jenkins安装需要Java环境

docker安装jenkins

CentOS停止维护后,更换了服务器系统。使用docker安装jenkins,安装方便,而且jenkins数据迁移的时候也方便。

拉取 jenkins镜像

# docker pull jenkins/jenkins

如果报错:Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

则修改 /etc/docker/daemon.json,如果没有该文件,则新建。添加 registry-mirrors:镜像源地址。

{
"registry-mirrors": ["https://docker.1ms.run", "https://docker.1panel.live/", "https://mirror.aliyuncs.com"]
}

重启docker

 sudo systemctl daemon-reload
 sudo systemctl restart docker

再次拉取 jenkins镜像。

如果是 jenkins 数据迁移的话,先把原 jenkins 文件夹,复制到新服务器的对应的文件夹下,然后再启动 jenkins。

待 Jenkins数据迁移好后,运行。

docker run -u root -it --name jenkins -p 8080:8080 -p 50000:50000 -v /usr/local/jenkins_home:/var/jenkins_home -v /usr/local/maven:/usr/local/maven -v /usr/local/java:/usr/local/java -v /usr/local/nodejs:/usr/local/nodejs -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -d jenkins/jenkins:2.263.1

-u root 必须要在root下运行。

安装Jenkins

添加Jenkins库到yum库,Jenkins将从这里下载安装。

#下载Jenkins库
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo 
#导入key
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

安装

[root@centos ~]# yum install -y jenkins

通过上面命令后,Jenkins安装目录里面实际上没有任何文件,是空的。

只有在Jenkins第一次访问时候,会下载文件准备。

启动

[root@centos ~]# systemctl start jenkins 

如果start jenkins提示找不到jenkins.service,重启系统就可以了,特别是通过rpm包安装的时候,安装完毕启动jenkins,提示找不到jenkins.service。 

相关配置

Jenkins安装目录

/var/lib/jenkins

Jenkins配置文件地址

/etc/sysconfig/jenkins

 查看Jenkins的配置文件

JENKINS_HOME 是Jenkins的主目录,Jenkins工作的目录都放在这里,存储文件的地址、插件、生成的文件都在这个目录下

## Path:        Development/Jenkins

## Description: Jenkins Automation Server

## Type:        string

## Default:     "/var/lib/jenkins"

## ServiceRestart: jenkins

#

# Directory where Jenkins store its configuration and working

# files (checkouts, build reports, artifacts, ...).

#

JENKINS_HOME="/var/lib/jenkins"

JENKINS_USER 是Jenkins的用户,拥有  $JENKINS_HOME 和 /var/log/jenkins 的权限

## Type:        string

## Default:     "jenkins"

## ServiceRestart: jenkins

#

# Unix user account that runs the Jenkins daemon

# Be careful when you change this, as you need to update

# permissions of $JENKINS_HOME and /var/log/jenkins.

#

JENKINS_USER="jenkins"

JENKINS_PORT 是Jenkins的端口,默认端口是8080

## Type:        integer(0:65535)

## Default:     8080

## ServiceRestart: jenkins

#

# Port Jenkins is listening on.

# Set to -1 to disable

#

JENKINS_PORT="8080"

在启动Jenkins时遇到问题

[root@centos ~]# systemctl start jenkins 
Starting jenkins (via systemctl): Job for jenkins.service failed because the control process exited with error code.

查看错误详情

[root@centos ~]# systemctl status jenkins.service

是因为Jenkins 未加载到 java 环境的问题,实际 java环境已经配置好。

直接修改 Jenkins 的启动文件,并在 candiddates 参数内追加 java 的环境变量。

[root@centos ~]# vim /etc/rc.d/init.d/jenkins

如下图所示

启动Jenkins

  • 安装成功后Jenkins将作为一个守护进程随系统启动
  • 系统会创建一个“jenkins”用户来允许这个服务,如果改变服务所有者,同时需要修改/var/log/jenkins, /var/lib/jenkins, 和/var/cache/jenkins的所有者
  • 启动的时候将从/etc/sysconfig/jenkins获取配置参数
  • 默认情况下,Jenkins运行在8080端口,在浏览器中直接访问该端进行服务配置
  • Jenkins的RPM仓库配置被加到/etc/yum.repos.d/jenkins.repo

Jenkins下载rpm安装

1、下载 Redhat Jenkins Packages  下载合适的版本

2、安装命令

sudo rpm -ih jenkins-2.73.2-1.1.noarch.rpm

自动安装完成之后: 
/usr/lib/jenkins/jenkins.war    WAR包 
/etc/sysconfig/jenkins       配置文件
/var/lib/jenkins/       默认的JENKINS_HOME目录(做迁移的时候备份的文件是JENKINS_HOME,有的是jenkins)
/var/log/jenkins/jenkins.log    Jenkins日志文件

打开jenkins 

在浏览器中访问 
首次进入会要求输入初始密码
初始密码在:/var/lib/jenkins/secrets/initialAdminPassword

Jenkins迁移

将Jenkins数据文件夹(如 /var/lib/jenkins)打成压缩包,移动到新服务器解压缩。解压缩之前要关注一下是否已经有jenkins用户。如果有解压缩后,文件自动就是Jenkins用户的。

注意必须用压缩包形式移动,不能用复制的方式,使用压缩包解压缩后文件所属的用户 还是jenkins。

如果迁移后,Jenkins数据文件夹及其文件都是jenkins用户,但是在网站访问的时候报以下错

Jenkins throwing error: jenkins.model.InvalidBuildsDir: ${ITEM_ROOTDIR}/builds does not exist and probably cannot be created

方法一: 使用root用户来管理jenkins(简单粗暴)
由于jenkins自动部署会用到shell命令,使用root用户会避免遇到更多的问题(但是实际生产中,更推荐不要使用root用户)
$ vim /etc/sysconfig/jenkins # 打开配置文件
    $JENKINS_USER="root" # 修改$JENKINS_USER变量为root,并去掉当前行注释
#修改Jenkins相关文件夹用户权限(必须修改)
$ chown -R root:root /var/lib/jenkins
$ chown -R root:root /var/log/jenkins
$ chown -R root:root /var/cache/jenkins
#重启Jenkins服务并检查运行Jenkins的用户是否已经切换为root
$ service jenkins restart  
$ ps -ef | grep jenkins  # 查看Jenkins进程所属用户
方法二:新建用户【推荐】
$ useradd zcjenkins #添加新用户zcjenkins

$ vim /etc/sysconfig/jenkins # 打开配置文件
    $JENKINS_USER="zcjenkins" # 修改$JENKINS_USER变量为root,并去掉当前行注释

#修改Jenkins相关文件夹用户权限(必须修改)
$ chown -R zcjenkins:zcjenkins /var/lib/jenkins
$ chown -R zcjenkins:zcjenkins /var/log/jenkins
$ chown -R zcjenkins:zcjenkins /var/cache/jenkins

Jenkins如果出现部署docker时出错

INFO: I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Permission denied

需要改变目录权限

  usermod -a -G docker jenkins

https://blog.youkuaiyun.com/m0_37027631/article/details/104987046

https://www.jianshu.com/p/143754b20cb3

<think>好的,我现在需要帮助用户了解如何进行Jenkins迁移。根据用户的问题,他们想要一个迁移指南或数据迁移的方法。首先,我应该回顾用户提供的引用内容,看看有哪些相关的信息可以利用。 用户提供的引用中提到了几个关键点。引用[1]和[3]提到压缩Jenkins目录,比如.jenkins文件夹,使用tar命令打包。引用[2]说明迁移主要涉及master server,而agent不需要迁移,除非有特殊配置。引用[5]提到了迁移时的步骤,包括安装JDK、Maven、Git,处理防火墙端口,以及启动时可能出现的问题,比如病毒或磁盘空间问题。 首先,我需要整理迁移的基本步骤。通常,Jenkins迁移涉及备份数据、传输备份到新服务器、恢复数据,以及配置新环境。用户提到的引用中,备份.jenkins目录是关键,因为这个目录包含jobs、plugins、users等信息。因此,第一步应该是停止Jenkins服务,确保数据一致性。然后打包目录,传输到新服务器,再解压并启动服务。 接下来,需要考虑新服务器的环境配置。比如安装Java,因为Jenkins是基于Java的,所以需要正确版本的JDK。引用[5]提到安装JDK、Maven、Git,这些是构建工具,可能用户的项目需要这些,所以需要在新服务器上安装相同版本的软件以避免兼容性问题。 另外,防火墙和安全组设置也是重点。用户需要开放相应的端口,如7777,并在阿里云安全组中配置,确保外部可以访问。引用[5]中用户遇到了启动后无法访问的问题,可能因为端口未正确开放,或者安全组未设置。此外,启动时磁盘狂飙的问题,可能是由于恶意脚本或病毒,需要检查.jenkins目录是否有异常文件,或者进行系统扫描。 用户的问题还提到了迁移后初始化配置,比如可能的登录问题。引用[4]给出解决方法是删除security配置文件并重启nexus,这可能与权限或安全配置有关,但需要根据具体情况处理。迁移后可能需要重新配置Jenkins的URL或更新插件,确保所有设置适应新环境。 在整理步骤时,需要注意顺序:停止服务→备份数据→传输→安装依赖→恢复数据→启动服务→验证。同时,要提醒用户检查日志文件,如/var/log/jenkins.log,以排查启动错误。另外,插件兼容性可能是个问题,特别是跨版本迁移时,可能需要升级插件或Jenkins本身,这需要提前测试。 用户可能遇到的常见问题包括权限问题(如.jenkins目录的权限)、端口冲突、环境变量未设置正确、插件失败等。需要给出相应的解决建议,比如使用chmod设置权限,检查Java版本,逐步启用插件等。 最后,应该生成相关问题,帮助用户深入理解迁移过程中的其他方面,例如回滚计划、插件管理、权限配置等。这些问题应该基于迁移步骤中的关键点,帮助用户全面掌握迁移的注意事项。</think>### Jenkins 迁移指南 #### 一、核心数据备份与迁移 1. **停止Jenkins服务** 确保数据一致性: ```bash systemctl stop jenkins # 或直接终止Java进程 ``` 2. **压缩关键目录** Jenkins核心数据存储于`$JENKINS_HOME`(默认路径为`~/.jenkins`): ```bash tar -czvf jenkins_backup_$(date +%Y%m%d).tar.gz /var/lib/jenkins # 根据实际路径调整[^1][^3] ``` 3. **迁移备份文件** 使用`scp`或`rsync`传输到新服务器: ```bash scp jenkins_backup_20240615.tar.gz root@new_server:/opt/ ``` #### 二、新服务器环境准备 1. **安装基础依赖** 确保JDK版本与旧环境一致(推荐OpenJDK 8/11): ```bash yum install -y java-1.8.0-openjdk-devel # CentOS示例 ``` 2. **恢复数据** 解压备份文件到新服务器指定路径: ```bash mkdir -p /var/lib/jenkins tar -xzvf jenkins_backup_20240615.tar.gz -C /var/lib/jenkins/ chown -R jenkins:jenkins /var/lib/jenkins # 修复权限问题[^5] ``` 3. **配置网络与安全** - 开放防火墙端口(示例为8080): ```bash firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload ``` - 云服务器需配置安全组规则(如阿里云ECS)[^5] #### 三、启动与验证 1. **启动Jenkins服务** ```bash systemctl start jenkins journalctl -u jenkins -f # 查看实时日志 ``` 2. **访问验证** 通过`http://新服务器IP:端口`访问,若出现以下问题: - **无法登录**:检查`$JENKINS_HOME/config.xml`中安全配置[^4] - **插件异常**:通过`管理界面 > 插件管理`重新安装或升级 #### 四、高级配置同步 1. **同步构建工具路径** 在`系统管理 > 全局工具配置`中更新JDK、Maven、Git路径: ```plaintext JDK路径示例:/usr/lib/jvm/java-1.8.0-openjdk Maven路径示例:/opt/apache-maven-3.6.3 ``` 2. **Agent节点重连** 若原有Agent使用JNLP连接,仅需在新Jenkins的`节点管理`中重新生成连接命令[^2] --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值