自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_41004518的博客

空闲的时候就记录下项目过程、新技术学习;是自己笔记的同时也是分享

  • 博客(92)
  • 收藏
  • 关注

原创 深入 Prometheus 监控生态 - 第一篇:原理与架构详解

Prometheus 通过 pull 模式采集时序数据,结合 PromQL 查询语言和告警系统,适合大规模分布式架构的监控需求。它与 Grafana、Alertmanager 等工具紧密集成,提供了强大的监控、告警、可视化能力。

2024-09-06 11:40:43 4386 2

原创 SVN 仓库目录迁移,仓库 “降级” 成子目录实战

已存在仓库,但公司研发现在需求是把 /aa/bb 变为仓库,cc 则为/aa/bb仓库内的一个目录,且需要保留内容和log。

2026-03-17 17:11:44 171

原创 从 0 到 1 理解 Kubernetes:一次“破坏式”学习实践(五)

containerd 镜像源问题(pause 镜像 + docker hub)手工 bridge CNI 下的跨节点路由问题Kubernetes Secret at-rest 加密验证可以正常创建 Pod可以跨节点通信Secret 数据已加密存储但网络仍然是“静态路由模型”。下一篇将会部署网络插件并加入新 node 节点。

2026-02-11 17:09:38 449

原创 从 0 到 1 理解 Kubernetes:一次“破坏式”学习实践(四)

这里配置得七七八八了,剩下还有一些环境 CNI 之类的配置。

2026-02-11 17:08:45 256

原创 从 0 到 1 理解 Kubernetes:一次“破坏式”学习实践(三)

kubeconfig是一个客户端访问 Kubernetes API 的身份配置文件,解决了3个问题:我要访问谁?(集群 URL)我是谁?(我的证书、我的私钥)我要以什么身份 + 访问哪个集群?(上面两个匹对)就是 apiserver 在写入 etcd 之前,会对指定的资源字段进行加密,然后把密文写进 etcd。()不配置 encryption-config.yaml 的话,kubernetes 一样可运行(默认不会加密),只是 apiserver 以明文写入/读取 etcd。

2026-02-06 14:49:22 396

原创 从 0 到 1 理解 Kubernetes:一次“破坏式”学习实践(二)

条件文件作用合法身份xxx.crt谁是谁能证明我是我xxx.key私钥签名/解密,证明身份真实性统一信任源ca.crt验证对方证书是否合法Kubernetes 全员实名制 + 双向 TLS,确保每个组件身份可验证、通信加密。这里就过了一下 TSL 证书工作原理以及生成过程,工作上若证书丢失或过期,大致也从工作原理上明白了从哪个点进行修复。

2026-02-06 14:48:11 303

原创 从 0 到 1 理解 Kubernetes:一次“破坏式”学习实践(一)

没那么多实体机,创建太多 VM 虚拟机也不太好管理(配地址、清理之类的),测试环境就用 multipass,创建删除管理都方便。现在前期准备了,下篇会正式开始部署 Kubernetes。

2026-02-05 16:54:46 821

原创 Helm 实战指南(三):生产环境 Helm 部署 CVAT 全记录:Ceph 存储、GPU 节点污点调度与 HTTPS 指南

微服务拆分过细:虽然架构先进,但运维成本高。如果不是backend配置支持继承,单独配置每个 Pod 的调度策略会非常痛苦。默认配置不合理:OPA 默认只监听localhost导致健康检查失败,这是一个非常低级的默认配置坑,迫使我们必须手动介入。文档缺失:官方文档未强调 HTTPS 对于前端功能的强制性,导致很容易在 HTTP 环境下浪费时间排查 JS 报错。内网友好度低:内网环境下,Grafana 插件下载、依赖包拉取都需要自己在里注入 Proxy 环境变量。

2026-02-05 16:50:40 959 1

原创 Exchange 撤销后的连锁反应:一次 AD mail 属性变更引发的 Gerrit 登录事故

这不是 Gerrit 的 bug,而是设计如此。真正的冲突点是:Gerrit 里有我手动添加的邮箱AD 里mail是空的AD 里mail有值了Gerrit 登录时尝试“再添加一次同样的邮箱”于是 Gerrit 认为:“这个邮箱已经属于某个 account 了,我不能再给你建 external ID。Exchange 撤销之后,AD 某些原本被自动维护的属性,悄悄变成了“没人管”,而系统却还在继续依赖它。

2025-12-26 15:30:57 610

原创 VMware Horizon 与 Docker 冲突排错记录

本文问题本质并非端口或服务异常,而是 Docker 默认网桥参与系统选路,导致 Horizon 回连路径选错接口。在依赖回连机制的 VDI 场景中,Docker 网络与桌面访问路径必须明确隔离或有序控制。

2025-12-24 17:01:52 675

原创 记录:Nexus 代理 ROS2 清华源导致 404 的问题与解决方案

近期在为 Ubuntu 22.04 配置内网 APT 源时,需要通过 Nexus 代理清华的 ROS2 仓库。apt update.deb浏览器浏览器。

2025-12-03 15:18:19 611

原创 一次曲折的 Nexus 升级:解决 Ubuntu 22 APT 代理失败(502 Bad Gateway)的完整记录

vSAN 导出的 NFS 不适合承载大量小文件操作(Nexus 的 blob store 就是大量小文件)这些都是普通的 gzip 或 plain text 文件,Nexus 不需要解包,只是透明转发即可。本文记录我整个排查、踩坑、升级、最终解决的全部过程,希望能给遇到相同问题的人一点参考。Nexus 做 apt 代理,不就是帮我把文件从外网拉过来,然后转发给客户端么?然而,新的 Ubuntu 22 在 Nexus 上却出现了一系列诡异的问题。关于这个问题,也没必要问 AI,真没什么好解决方案给你。

2025-11-25 15:55:35 1125

原创 Kubernetes 双层 Nginx 容器环境下的 CORS 问题及解决方案(极端情况)

做到这里,虽然都解决跨域问题了,但还会有个疑问:为什么“前端只一层 nginx 时 CORS 要配置在后端”,而“前端两层 nginx 时 CORS 要配置最外层前端 nginx”?浏览器不是都只看前端域名吗??跨域检查(CORS)只有在浏览器环境中才会触发。浏览器只会对它“看得到的那一跳”做跨域检查。看不到的代理层不需要设置 CORS。哪一层返回响应给浏览器,CORS 就必须在哪一层配置。当然,跨域情况遇到本来就比较少了,现在双Nginx的跨域。

2025-10-31 14:49:22 477

原创 Helm 实战指南(二):深入对象模型与模板语法

可以直接在。

2025-10-28 16:20:39 743

原创 Helm 实战指南(一):为什么需要 Helm?从基础概念到环境搭建

准备多个 YAML 文件(Deployment、Service、Ingress、ConfigMap、Secret……);每次上线都要;更新版本、调整参数时,需要手动修改 YAML;不同环境(测试/预发/生产)下配置不一致,维护成本极高。这些问题在项目规模小还好,但一旦涉及多个服务、多人协作、频繁更新,就非常痛苦。Helm 的出现,就是为了解决这一系列“YAML 地狱”问题。编辑vim mychart/values.yaml # 添加内容: MY_VALUE: "Hello2"

2025-10-28 16:18:21 829

原创 Synology High Availability 部署实战:一主一丛实现经济型高可用解决方案

SHA 是 Synology 提供的一种高可用性解决方案,通过两台 NAS 组成一个“高可用集群”,实现当主节点出现故障时,备节点可以自动接管服务,尽量缩短中断时间。两台 NAS(硬件配置尽量一致)组成集群一个对外的虚拟 IP(VIP)作为访问入口主节点负责对外提供服务备节点实时同步主节点的数据和配置一旦主节点挂掉,备节点接管 VIP,对外无感知切换如果想实现异地容灾,SHA 并不适用。我这一套一共使用了2台群晖 NAS + 8块 16T 机械盘,也就花了 4w 不到。

2025-10-13 16:00:17 873

原创 Windows 作为 Ansible 节点的完整部署流程(含 Docker 部署 Ansible)

Ansible 控制端(Docker 内)通过 Python 的pywinrm库发送 WinRM 请求。Windows 节点WinRM 服务接收请求 → 验证用户身份 → 调用 PowerShell 引擎执行命令。返回结果通过 WinRM 协议传回 Ansible。Ansible 汇总输出,显示在控制端。虽说 Windows 的 bat/ps1 脚本也可以存放到 Windows 节点上,但不好管理。

2025-09-26 11:40:34 1706

原创 Jenkins + SonarQube 从原理到实战六:Jenkins 和 SonarQube 的项目落地实践

整个 Jenkins + SonarQube 系列看下来并操作一遍,能带大家熟悉整个 CI 制作流程和技术要点了,遇到相关需求应该也能独自部署了。本篇不是去展示某个命令或配置,而是把从需求 → 思路 → 落地 → 困难 → 展望这条路讲了一遍。技术上,SonarQube + Jenkins + Gerrit 的集成已经比较成熟,代码扫描、打分、评论的 CI 流程能跑通;管理上,权限、项目归属、自动化配置也有了相应方案;推广与人。没有强制要求和合理的激励机制,开发同事很难自发去接受这套工具。

2025-09-17 11:39:49 1086

原创 Jenkins 监控方案:Prometheus + Grafana 实践

Jenkins Prometheus 插件:轻量、无侵入,快速导出 Jenkins 的业务指标Prometheus:集中采集Grafana:可视化 + 报表 + 告警在我本篇博文的基础上,稍微参照一下其他的抓取信息说明,很容易就可以实现从节点状态→任务健康度→队列资源的全方位对 Jenkins 监控了。

2025-09-05 14:34:02 1292

原创 Jenkins + SonarQube 从原理到实战五:Jenkins 与 SonarQube 集成并实现代码扫描自动化(Freestyle & Pipeline)

流程逻辑下载代码扫描代码获取 Sonar 扫描结果与报告生成 Gerrit 打分脚本执行打分脚本转义符问题在 Pipeline 中嵌套 Shell + Python 时,转义非常麻烦单独写 Shell 脚本 → 可能 1 小时搞定放到 Pipeline 里写 Shell → 可能需要 1-2 天调试各种转义所以代码看起来“又臭又长”,主要就是因为转义复杂度。Python 的限制这种只能写一行,Pipeline 语法会限制。

2025-09-03 15:46:42 1748

原创 Jenkins + SonarQube 从原理到实战四:Jenkins 与 Gerrit 集成并实现自动任务

上面演示的方法很多,但管理起来最方便肯定是第二第三种的,任何复杂不复杂的变动都可以靠自己写shell或其他脚本去执行但是如果是新部署jenkins,要加入jenkins的节点特别特别多,总不可能每台机都一台一台手动加入jenkins节点(输密码账号什么的,我也不确定能不能批量加入),特别是java版本不匹配的情况下还得给这个节点单独装一个java,这样特别麻烦,

2025-08-22 14:45:03 1036 1

原创 Jenkins + SonarQube 从原理到实战三:SonarQube 打通 Windows AD(LDAP)认证与踩坑记录

正式上线前,给 AD 组配置同名组,并给这个同名组配好相关权限。并由项目管理员去配置项目权限。后续 AD 账号登录 SonarQube 就自动加入对应组,即上线就有相应权限。目前在新建 AD 同名组以及删除 AD 域控上组成员,都必须要重启 SonarQube 服务且 AD 用户重新登录才生效,后续看能不能通过调用 SonarQube 的 API 实现实时权限变更(通过调用 Gerrit/Jenkins 的 API 进行信息匹对)。

2025-08-12 16:10:52 1067 1

原创 Windows 电脑远程访问,ZeroTier 实现内网穿透完整指南(含原理讲解)

家用路由器或运营商的 NAT 会“挡住”外部访问;但设备自己主动往外发一个包,NAT 会记住这个路径;如果双方同时主动发包,就能“在 NAT 上打个洞”,允许互相访问;这叫做 NAT 穿透,能实现高效低延迟的点对点通信。步骤说明安装配置 ZeroTier简单,跨平台支持安卓/Windows/Mac/Linux配置远程桌面 + RDP 客户端常规 Windows 操作设置 DNS关键,影响连通性国内打洞是否成功失败几率高,通常走中继安全性与控制权。

2025-08-05 17:05:52 5047

原创 Nginx 配置导致 “无法建立到 ws://xxx/_stcore/stream 的连接” 的解决方案

一句话:Nginx 是默认“不会翻译 WebSocket 请求”的 HTTP 代理,需要你手动告诉它如何升级协议。

2025-08-01 16:38:42 658

原创 Jenkins + SonarQube 从原理到实战二:SonarQube 社区版 + sonar-cxx 插件 + cppcheck 实现 C/C++ 代码质量扫描

是一个社区维护的 C/C++ 支持插件提供:基本语法解析、函数/变量识别、代码结构分析、部分内置规则检查支持读取外部工具输出(如 cppcheck、valgrind、clang-tidy)实现方式不是构建完整 AST,而是“轻量级语法分析”+“导入外部报告”不足之处语义理解有限:识别不了复杂控制流或宏定义展开不支持增量扫描(每次都全量)自身规则集有限,无法发现更深层次 bug这里就已经实现了C/C++ 代码质量扫描了,但指的一提的是,结果真的会有很多误判信息。

2025-07-28 17:09:37 2273

原创 Jenkins + SonarQube 从原理到实战一:基于 K8s 部署与使用(含中文插件与 Python 扫描)

SonarQube 是一款开源的代码质量管理平台,通过静态代码分析识别代码中的 Bug、安全隐患、重复代码、不规范风格等问题。它支持 CI/CD 集成、质量门控、可视化报告、规则自定义等功能,有助于提升开发效率与软件质量。防止 Bug 潜入主干统一代码质量度量标准提升协作开发效率上面就是 SonarQube 的部署已经简单使用,后续将更新 SonarQube 如何通过 cxx 插件,实现 C/C++ 代码的扫描,以及打通 Windows AD 和 Jenkins。

2025-07-28 09:51:39 1182

原创 Shell 脚本加密操作:让用户可执行,不可查看脚本源码 —— shc 实战避坑指南

通过生成的静态二进制,完美解决了跨环境执行的卡死问题。优先测试目标环境:即使静态编译,仍需验证 CPU 架构兼容性(如 ARM vs x86_64)。加密 ≠ 绝对安全:敏感信息应通过环境变量或密钥管理服务(如 Vault)传递,而非硬编码。

2025-07-22 17:14:55 1445

原创 Jenkins 不同节点间文件传递:跨 Job 与 同 Job 的实现方法

本文分享了两种在Jenkins中实现跨节点文件传递的安全方案。方法一使用archiveArtifacts+copyArtifacts插件,适合不同Job间的构建产物传递,通过Jenkins master中转文件,无需节点直连;方法二利用stash/unstash原生命令,适合同一Job内不同阶段跨节点传递临时文件。两种方式均无需节点间直接通信,可根据实际场景选择:多Job协作推荐方法一,单Job内跨阶段处理推荐方法二。这些方案在保证节点隔离的同时,实现了构建流程的灵活协作。

2025-07-21 14:49:16 1135

原创 Prometheus + SNMP Exporter 监控 QNAP 磁盘状态踩坑记录

太久没动这块了,真是忘得七七八八。以后要定期写点笔记,不然每次都是重头再踩一次坑😂。

2025-06-16 15:27:17 1229

原创 记录一次 apt-key curl导入失败的处理方式

当无法联网或因为各种网络问题导致无法直接访问 GPG key 时,从已有机器导出 key 再导入,是一个非常实用的替代方案。这在企业内网、离线环境或者对外网访问有限制的情况下非常常见。

2025-06-05 19:17:22 443

原创 VS Code 新旧版本 Remote-SSH 内网离线连接服务器方法(版本 ≤ 1.78.x 及 ≥ 1.79.0)

公司出于代码安全考虑,所有服务器均处于内网、无法直接访问互联网;同时,我们仍需使用 VS Code 的 Remote‑SSH 功能连接到这些代码服务器。下面将分别介绍 VS Code 旧版(≤ 1.78.x)和新版(≥ 1.79.0)在内网离线环境下部署的完整流程,并补充了常见问题排查与优化建议。旧版容器简单,直接将解压到并标记touch 0即可;新版目录更清晰,但需额外上传 CLI 包并调整下载策略;强烈建议统一使用,将下载逻辑完全交由本地,避免覆盖问题;

2025-05-14 11:38:44 4684

原创 Linux 安装交叉编译器后丢失 `<asm/errno.h>` 的问题及解决方案

使用 ARM 编译工具,建议使用容器化或其他系统设备来来隔离交叉工具链,避免环境/系统污染。操作作用检查系统是否开启了 ARM 架构卸载交叉编译器避免非原生架构工具干扰移除 armhf 架构及包恢复系统架构单一性重新安装 libc6-dev 等包恢复标准头文件和符号链接编译测试验证开发环境正常注:安装工具链/环境之前要检查会不会和原环境冲突,不然修复排查换源也挺麻烦,挺耗时间的,以后能用 docker 就尽量用 docker 吧。

2025-05-07 14:20:26 1507

原创 Linux Quota 显示空间占用远大于实际数据的问题排查记录

第一时间使用lsof +L1排查是否有被删除但仍占用的文件;找到具体进程后,根据情况优雅退出、重启或kill -9强制释放;最后用quota -vs 用户名确认配额恢复。这种问题常见于开发环境或长时间运行的服务日志处理,建议配合监控及时发现并自动化清理。

2025-04-30 10:14:15 493

原创 多地部署Gerrit Replication插件同步异常解决思路及方案(附脚本与CronJob部署)

目前就是通过 Python 实现读取 manifest.xml 仓库并生成 sh 脚本,再通过 CronJob 定时任务实现自动推送仓库到 B 地区。若想通过 Python 直接推送也可以,这样就 docker build 一个含git含python的镜像了由于 B 地区要下的仓库变动也不大,来来去去就这几个manifest.xml(换句话说生成 sh 脚本也不咋改)若有新增,只需将 manifest.xml 加入到 Python 泡泡,重新生成 sh 脚本就好了。

2025-04-29 10:22:06 1319

原创 PCIe 转 U.2 接双硬盘指南 - 超微(Supermicro)主板

以上就是超微(Supermicro)主板开启 PCIe 插槽转 U.2 接双硬盘的全部过程了,其他品牌服务器操作流程也类似(若主板支持)。要不是为了省钱还不想这么折腾,但现在很多新服务器主板默认支持接入 U.2,可直接接入 U.2 固态硬盘使用。

2025-04-27 16:09:31 1807

原创 如何完整迁移鸿蒙代码(含Git LFS文件)到内网Gerrit仓库

迁移鸿蒙这类使用 Git LFS 的大型开源项目到内网仓库,光是repo sync和远远不够。通常需要额外处理多分支、多 tag、大文件迁移以及可能存在的 LFS 插件兼容问题。

2025-04-18 16:44:28 1451

原创 Git LFS 学习笔记:原理、配置、实践与心路历程

storage]适用于自研服务或集成 Artifactory 等系统。“大文件管理的关键,不在于强塞进 Git,而是借助专业系统处理。Git LFS 让 Git 仓库保持轻量,提升团队协作体验;学习过程中,重点理解其“指针机制 + 按需下载”;配置方面,平台(如 Gerrit、GitHub、GitLab)差异虽有,但本质思路一致;在 CI/CD、Docker 等场景也可无缝集成,扩展性强。

2025-04-18 15:57:28 1873

原创 Linux 时间同步工具 Chrony 简介与使用

Chrony 是现代 Linux 系统中推荐的时间同步工具,具备轻量、精度高、适应性强等优点。通过简单的配置和管理命令,就可以保障系统时间的准确性,对于运维工作来说是非常实用的基础工具之一。

2025-04-08 13:54:26 2180

原创 Linux环境变量加载问题排查:.bashrc 环境变量刷新问题

里加了几个环境变量,结果发现每次登录后都**没!:图形界面开的终端默认是非登录式 Shell,所以可能依赖其他配置文件。文件,Shell 就直接跳过了这个步骤,环境变量自然没加载。是强制立即执行文件内容,绕过了 Shell 的自动加载逻辑。查了一圈资料,原来问题出在。(比如 SSH 或终端登录)默认只加载。里有拼写错误,加载时会直接失败。时加载(比如桌面环境下的终端)。立即生效,环境变量终于正常了!,Shell 就跳过了后续对。关闭终端重新登录,或者用。加载,属于“入口文件”。,登录时环境变量就丢了。

2025-04-03 15:19:35 703

原创 如何将外网 Git 仓库完整迁移到本地仓库并保留提交历史(附原理详解)

最近在迁移第三方Git仓库到本地私有仓库时,发现了一种简单高效的方法,可以完整保留原仓库的提交日志。本文将详细解析操作步骤及其背后的Git原理,帮助开发者理解这一过程的本质。我需要将第三方开源仓库(如GitHub仓库A,默认分支master)迁移到私有仓库(如 GitLab/Gerrit 仓库B,默认分支master)。git blame通过给 B 仓库创建中间分支 aa(承载仓库 A master 分支完整历史),既能避免分支冲突,又能实现历史溯源(如。

2025-03-20 15:34:00 1990

linux-network-core网络插件

linux-network-core网络插件 1.18的各版本(x86、amd等)

2025-01-08

openstack的controller和compute的etc文件

openstack的controller和compute的整个etc文件 centos7 openstack-t版 已经部署成功的,下载复制进去就能用

2024-12-27

WMware-workstation-17.6.1

WMware-workstation-17.6.1 就放了一版本

2024-12-25

cirros-x86-64的img镜像

版本分别为 cirros-0.3.4-x86_64-disk.img cirros-0.3.5-x86_64-disk.img cirros-0.4.0-x86_64-disk.img cirros-0.5.1-x86_64-disk.img

2024-12-16

snmp-exporter-main 集合包

snmp_exporte 工具集合包 1、prometheus 官方 snmp_exporte 工具,版本:main(default) 2、*.mib加到snmp_exporter/generator/mibs/里面 3、编写snmp_exporter/generator/generator.yml 留下保留监控项 4、运行make docker-generate 5、生成的snmp_exporter/generator/snmp.yml

2024-09-12

ipmi-exporter-1.8.0 集合包

ipmi_exporte 工具集合包 1、prometheus 官方 ipmi_exporte 工具,版本:1.8.0 2、请使用与直接版本相关的工具 3、直接运行即可 4、浏览器访问 9290 端口检验

2024-09-12

ipmi-exporter-1.7.0 集合包

ipmi_exporte 工具集合包 1、prometheus 官方 ipmi_exporte 工具,版本:1.7.0 2、请使用与直接版本相关的工具 3、直接运行即可 4、浏览器访问 9290 端口检验

2024-09-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除