前言

公司旧的服务器快到期了,需要将部署在其上的jenkins整体迁移到另一台服务器,两台都是aws ec2服务器。

文章主要提供给大家一种迁移思路,并不一定是最优解,仅供参考,大家根据实际情况自行选用和修改,举一反三。

部署文件

我的jenkins是采用docker compose方式部署的,docker-compose.yaml内容如下

networks:
jenkins:
name: jenkins
driver: bridge

services:
jenkins:
image: jenkins/jenkins:2.504.3
user: root
container_name: jenkins
privileged: true
restart: always
networks:
- jenkins
ports:
- "8080:8080"
- "50000:50000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /home/ec2-user/jenkins_compose/jenkins_configuration:/var/jenkins_home
environment:
- PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- LANG=C.UTF-8
- JENKINS_HOME=/var/jenkins_home
- JENKINS_SLAVE_AGENT_PORT=50000
- REF=/usr/share/jenkins/ref
- JENKINS_UC=https://updates.jenkins.io
- JENKINS_UC_EXPERIMENTAL=https://updates.jenkins.io/experimental
- JENKINS_INCREMENTALS_REPO_MIRROR=https://repo.jenkins-ci.org/incrementals
- COPY_REFERENCE_FILE_LOG=/var/jenkins_home/copy_reference_file.log
- JAVA_HOME=/opt/java/openjdk
command: ["/usr/bin/tini", "--", "/usr/local/bin/jenkins.sh"]

迁移思想

  1. 停止jenkin容器,以保证数据无更新
  2. 将容器挂载的卷打包成tar包,传到oss,比如aws s3或者其他的云服务,根据自己采用的云服务厂商来选择
  3. 在另一台服务器上拉取tar包,解压缩后
  4. 使用docker compose启动新容器

具体命令

具体细节,比如文件目录,需更具自己实际情况做修改

# 在旧的服务器上# 在旧服务器上停止 GitLab 容器(防止数据变更)
docker-compose down# 打包Jenkins数据目录‌(保留权限和软链接)
tar -czvf jenkins_backup.tar.gz -C /home/ec2-user/jenkins_compose/jenkins_configuration .# 上传到S3‌(需提前配置AWS CLI权限)
aws s3 cp jenkins_backup.tar.gz s3://your-bucket-name/jenkins_backup.tar.gz#在新的服务器上#从S3下载备份
aws s3 cp s3://your-bucket-name/jenkins_backup.tar.gz .# 为了方便,目录结构可以和之前一样
mkdir -p /home/ec2-user/jenkins_compose/jenkins_configuration# 解压
tar -xzvf jenkins_backup.tar.gz -C /home/ec2-user/jenkins_compose/jenkins_configuration# 启动容器
docker compose up -d

安装完成之后的操作

更改jenkins url

安装好之后,通过浏览器进入新jenkins web ui,更改jenkins url为新的服务器地址

 

删除workspace下面的仓库

 因为在新的服务器上构建老仓库,可能会报git拉取问题,如图

进入容器的/var/jenkins_home/workspace目录,因为我的容器卷挂载的是 /home/ec2-user/jenkins_compose/jenkins_configuration:var/jenkins_home/workspace,所以我直接在宿主机上进入对应目录,删除下面的所有仓库(无需担心,因为数据是存在git仓库的,如gitlab或者github什么的,所以删去之后,再构建,jenkins会重新去远程仓库拉取新代码

在workspace目录下执行下面的删除操作!!! 

在workspace目录下执行下面的删除操作 !!!

在workspace目录下执行下面的删除操作!!! 

# 删除当前目录下所有内容(含隐藏文件/目录)
sudo find . -mindepth 1 -delete 2>/dev/null

再次执行构建操作,构建成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90318.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90318.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/90318.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在vue中遇到Uncaught TypeError: Assignment to constant variable(常亮无法修改)

1.问题如下:2.出现这个问题的原因----在设计变量的时候采用了const来进行修饰,在修改的时候直接对其进行修改3.利用响应式变量的特点,修改为下面这样就可以正常了

RCE随笔-奇技淫巧(2)

Linux命令长度限制在7个字符的情况下&#xff0c;如何拿到shell <?php $param $_REQUEST[param]; If ( strlen($param) < 8 ) { echo shell_exec($param); }分析代码&#xff1a;这段代码传入参数param然后进入if语句判断是否小于8个字符&#xff0c;然后如果小于就会进…

设计模式九:构建器模式 (Builder Pattern)

动机(Motivation)1、在软件系统中&#xff0c;有时候面临着“一个复杂对象”的创建工作&#xff0c;其通常由各个部分的子对象用一定的算法构成&#xff1b;由于需求的变化&#xff0c;这个复杂对象的各个部分经常面临着剧烈的变化&#xff0c;但是将它们组合在一起的算法却相对…

如何高效合并音视频文件

在自我学习或者进行视频剪辑的时候&#xff0c;经常从资源网址下载音视频分离的文件&#xff0c;例如audio_file1.m4a和video_1.mp4&#xff0c;之后需要把这两个文件合并在一起。于是条件反射得想要利用剪映等第三方工具&#xff0c;进行音视频的封装。可惜不幸的是&#xff0…

虚幻 5 与 3D 软件的协作:实时渲染,所见所得

《曼达洛人》的星际飞船在片场实时掠过虚拟荒漠&#xff0c;游戏开发者拖动滑块就能即时看到角色皮肤的通透变化&#xff0c;实时渲染技术正以 “所见即所得” 的核心优势&#xff0c;重塑着 3D 创作的整个逻辑。虚幻引擎 5&#xff08;UE5&#xff09;凭借 Lumen 全局光照和 N…

​Eyeriss 架构中的访存行为解析(腾讯元宝)

​Eyeriss 架构中的访存行为解析​Eyeriss 是 MIT 提出的面向卷积神经网络&#xff08;CNN&#xff09;的能效型 NPU&#xff08;神经网络处理器&#xff09;架构&#xff0c;其核心创新在于通过硬件结构优化访存行为&#xff0c;以解决传统 GPU 在处理 CNN 时因数据搬运导致的…

数字图像处理(三:图像如果当作矩阵,那加减乘除处理了矩阵,那图像咋变):从LED冬奥会、奥运会及春晚等等大屏,到手机小屏,快来挖一挖里面都有什么

数字图像处理&#xff08;三&#xff09;一、&#xff08;准备工作&#xff1a;咋玩&#xff0c;用什么玩具&#xff09;图像以矩阵形式存储&#xff0c;那矩阵一变、图像立刻跟着变&#xff1f;1. Python Jupyter Notebook/Lab 库 (NumPy, OpenCV, Matplotlib, scikit-image…

docker-desktop启动失败

报错提示deploying WSL2 distributions ensuring main distro is deployed: checking if main distro is up to date: checking main distro bootstrap version: getting main distro bootstrap version: open \\wsl$\docker-desktop\etc\wsl_bootstrap_version: The network n…

基于FastMCP创建MCP服务器的小白级教程

以下是基于windows 11操作系统环境的开发步骤。 1、python环境搭建 访问官网&#xff1a;https://www.python.org/。下载相应的版本&#xff08;如&#xff1a;3.13.5&#xff09;&#xff0c;然后安装。 安装完成之后&#xff0c;使用命令行工具输入python&#xff0c;显示…

网络协议与层次对应表

网络协议与层次对应表&#xff08;OSI & TCP/IP模型&#xff09;OSI七层模型TCP/IP四层模型协议/技术核心功能与应用​应用层​应用层HTTP/HTTPS网页传输协议&#xff08;HTTP&#xff09;及其加密版&#xff08;HTTPS&#xff09;FTP文件上传/下载协议SMTP/POP3/IMAPSMTP发…

android studio(NewsApiDemo)100%kotlin

api接口地址&#xff1a;https://newsapi.org/docs/get-started 项目成品地址&#xff1a;https://github.com/RushHan824/NewsApiDemo 项目效果展示&#xff1a; MVVM数据流 UML图 本系列文章将带你从零实现一个新闻列表App&#xff0c;适合零基础读者。一步步来&#xff0c…

面试高频题 力扣 417. 太平洋大西洋水流问题 洪水灌溉(FloodFill) 深度优先遍历(dfs) 暴力搜索 C++解题思路 每日一题

目录零、题目描述&#xff1a;用人话再讲一遍一、为什么这道题值得咱们学习&#xff1f;二、思路探索常规思路&#xff1a;逐个检查每个格子&#xff08;会超时&#xff01;⚠️&#xff09;三、正难则反&#xff1a;反向思维的巧妙应用 &#x1f504;&#xff08;思考时间&…

博物馆智慧导览系统AR交互与自动感应技术:从虚实融合到智能讲解的技术实践

本文面向博物馆信息化开发者、智慧场馆系统技术建设师及AR 设计工程师,从AR 交互与自动感应技术的逻辑出发,拆解AR虚实融合技术与智能讲解自动感应技术的原理&#xff0c;为相关开发者实践提供可复用的技术路径。如需获取博物馆智慧导览系统解决方案请前往文章最下方获取&#…

高效编程革命:DeepSeek V3多语言支持与性能优化实战

文章目录 如何利用DeepSeek V3编写高效程序代码:从原理到实践 引言 一、DeepSeek V3核心能力解析 1.1 模型架构与优势 1.2 与传统编程辅助工具对比 二、高效代码编写实践指南 2.1 精准提示工程(Prompt Engineering) 基础提示模板 高级提示技巧 2.2 生产级代码生成案例 示例:…

OkHttp 与 JSON 解析库完美结合:Moshi/Jackson/Gson 实战指南

前言在现代 Android 开发中&#xff0c;网络请求与 JSON 数据处理是密不可分的。OkHttp 作为强大的 HTTP 客户端&#xff0c;与 JSON 解析库&#xff08;Moshi/Jackson/Gson&#xff09;的结合使用&#xff0c;可以极大简化网络请求与数据解析的流程。本文将详细介绍如何将 OkH…

An error occurred at line: 1 in the generated java file问题处理及tomcat指定对应的jdk运行

一、背景 tomcat7启动后&#xff0c;加载jsp页面报错&#xff0c;提示无法将jsp编译为class文件&#xff0c;主要报错信息如下&#xff1a; An error occurred at line: 1 in the generated java file 最后确认该错误原因为&#xff1a;tomcat7不支持jdk1.8版本 机器上已配…

深入剖析大模型在文本生成式 AI 产品架构中的核心地位

一、大模型的崛起与概念解析 在人工智能技术飞速迭代的当下&#xff0c;大模型已成为驱动行业发展的核心引擎。从技术定义来看&#xff0c;大模型&#xff08;Large Model&#xff09; 是指基于深度学习架构、具备海量参数规模&#xff08;通常数十亿至数万亿级别&#xff09;&…

Vue Scoped样式:当动态元素成为“无家可归“的孤儿

引言&#xff1a;一场CSS的"身份危机"想象一下&#xff1a;你精心设计了一个Vue组件&#xff0c;为每个元素添加了漂亮的样式。你满意地添加了scoped属性&#xff0c;确保样式不会"越狱"影响其他组件。然后你动态添加了一些新元素&#xff0c;却发现它们完…

vmware分配了ubuntu空间但是ubuntu没有获取

一开始我看vmware中的ubuntu磁盘空间只有200g不够用&#xff0c;我在vmware给Ubuntu分了300G的磁盘空间&#xff0c;但是ubuntu还是只有之前的200g 如图在ubuntu查看后来发现&#xff0c;在磁盘软件里面需要自己分配磁盘空间大小拓展后就可以了

[MarkdownGithub] 使用块引用高亮显示“注意“和“警告“和其他注意方式的选项

参考来源: https://github.com/orgs/community/discussions/16925 Alerts are an extension of Markdown used to emphasize critical information. On GitHub, they are displayed with distinctive colors and icons to indicate the importance of the content. 提示框是 Ma…