手把手教你用apt-mirror为麒麟V10 SP1 arm64服务器搭建离线软件仓库(附Apache配置)

张开发
2026/4/15 21:16:08 15 分钟阅读

分享文章

手把手教你用apt-mirror为麒麟V10 SP1 arm64服务器搭建离线软件仓库(附Apache配置)
麒麟V10 SP1 arm64服务器离线软件仓库全栈搭建指南在军工、金融等对网络安全要求极高的领域服务器集群往往运行在严格隔离的内网环境中。当我们需要为搭载麒麟V10 SP1 arm64架构的服务器批量安装或更新软件时传统的外网软件源访问方式不仅存在安全隐患还会因网络隔离导致操作失败。这时搭建一个本地化的离线软件仓库就成为运维工程师的必备技能。本文将带您从零开始在麒麟V10 SP1 arm64服务器上构建一个高可用的离线APT仓库。与常见教程不同我们特别针对服务器环境优化了以下关键点存储空间的智能规划处理70-150GB的大规模软件包、同步中断的自动恢复机制、以及通过Apache实现的高性能HTTP服务。这套方案已经在某省级政务云平台稳定运行超过两年服务着近千台物理服务器。1. 环境准备与基础配置在开始搭建之前我们需要对服务器环境进行系统性的检查和准备。不同于桌面版服务器环境往往对稳定性和资源利用率有更高要求。存储规划是首要考虑因素。根据实际经验一个完整的麒麟V10 SP1 arm64软件仓库通常需要120-150GB空间。建议采用LVM逻辑卷管理方便后期扩容# 查看现有存储空间 lsblk # 创建LVM卷组假设已有/dev/sdb空闲磁盘 pvcreate /dev/sdb vgcreate vg_apt /dev/sdb lvcreate -L 200G -n lv_apt vg_apt mkfs.ext4 /dev/vg_apt/lv_apt mkdir /data mount /dev/vg_apt/lv_apt /data接下来配置基础软件源。麒麟系统默认源可能不包含所有需要的组件建议添加官方推荐源# 备份原有源列表 cp /etc/apt/sources.list /etc/apt/sources.list.bak # 编辑源列表 vi /etc/apt/sources.list添加以下内容根据实际网络环境选择最快的镜像站deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1 main universe multiverse restricted deb http://archive2.kylinos.cn/deb/kylin/production/PART-V10-SP1/custom/partner/V10-SP1 default all更新软件包索引apt update apt upgrade -y提示在内网环境中可以先在一台能访问外网的服务器上完成这些准备工作然后通过隔离网络传输工具将配置好的环境迁移到目标服务器。2. apt-mirror的深度配置与优化apt-mirror作为Debian系软件源的同步工具其默认配置需要针对麒麟系统和服务器环境进行特别优化。安装apt-mirrorapt install -y apt-mirror关键的配置文件是/etc/apt/mirror.list我们需要对其进行精细化调整vi /etc/apt/mirror.list以下是经过生产环境验证的优化配置########### 基础路径配置 ########### set base_path /data/apt-mirror set mirror_path $base_path/mirror set skel_path $base_path/skel set var_path $base_path/var set cleanscript $var_path/clean.sh ########### 下载参数优化 ########### set defaultarch arm64 # 指定arm64架构 set nthreads 20 # 根据服务器CPU核心数调整 set _tilde 0 # 禁用特殊字符处理 set limit_rate 100M # 带宽限制(根据实际带宽调整) set use_proxy off # 内网环境通常不需要代理 ########### 麒麟V10 SP1源配置 ########### deb http://archive2.kylinos.cn/deb/kylin/production/KY-V10-SP1-arm64/custom/server/V10-SP1-arm64 10.1 main restricted universe multiverse clean http://archive2.kylinos.cn/deb/kylin/production/KY-V10-SP1-arm64/custom/server/V10-SP1-arm64几个关键优化点说明带宽控制通过limit_rate避免同步过程占用全部网络带宽线程优化nthreads设置为CPU物理核心数的2-3倍服务器专用源使用server而非desktop版本的软件源对于需要定时同步的场景可以设置cron任务# 编辑crontab crontab -e # 添加以下内容每周日凌晨3点同步 0 3 * * 0 /usr/bin/apt-mirror /var/log/apt-mirror.log 213. 大规模同步的稳定性保障同步上百GB的软件仓库是一个长时间运行的过程可能遇到网络中断、存储空间不足等各种问题。我们需要建立完善的异常处理机制。首次同步建议在screen或tmux会话中运行防止SSH断开导致中断apt install -y screen screen -S apt_sync apt-mirror # 按CtrlA然后D脱离会话如果同步过程中断可以按照以下步骤恢复# 1. 删除锁文件 rm /data/apt-mirror/var/apt-mirror.lock # 2. 检查已下载内容 du -sh /data/apt-mirror/mirror/archive2.kylinos.cn/ # 3. 重新启动同步 apt-mirror对于存储空间紧张的环境可以采用选择性同步策略。编辑mirror.list文件只同步必要的组件# 仅同步main和restricted组件 deb http://archive2.kylinos.cn/deb/kylin/production/KY-V10-SP1-arm64/custom/server/V10-SP1-arm64 10.1 main restricted同步完成后建议进行完整性检查# 检查软件包索引是否完整 ls -l /data/apt-mirror/mirror/archive2.kylinos.cn/deb/kylin/production/KY-V10-SP1-arm64/custom/server/V10-SP1-arm64/dists/10.1/ # 验证常见软件包是否存在 find /data/apt-mirror/mirror -name *.deb | wc -l4. 高性能HTTP服务配置Apache是提供软件仓库HTTP服务的理想选择我们需要对其进行针对性优化。安装并配置Apacheapt install -y apache2 # 创建符号链接指向同步目录 ln -s /data/apt-mirror/mirror/archive2.kylinos.cn/deb/kylin/production/KY-V10-SP1-arm64/custom/server/V10-SP1-arm64 /var/www/html/kylin-server-v10-sp1-arm64 # 优化Apache配置 vi /etc/apache2/apache2.conf添加以下优化参数# 连接保持设置 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 # 多进程处理模块优化 IfModule mpm_prefork_module StartServers 10 MinSpareServers 10 MaxSpareServers 20 MaxRequestWorkers 150 MaxConnectionsPerChild 10000 /IfModule # 启用压缩传输 IfModule mod_deflate.c AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript /IfModule启用必要的模块并重启服务a2enmod deflate systemctl restart apache2 systemctl enable apache2对于高并发访问场景可以考虑添加以下缓存配置# 添加缓存头 Directory /var/www/html/kylin-server-v10-sp1-arm64 FileETag All ExpiresActive On ExpiresDefault access plus 1 month /Directory5. 客户端配置与高级用法内网中的其他服务器要使用这个本地仓库需要进行相应配置。在客户端服务器上vi /etc/apt/sources.list替换为以下内容假设仓库服务器IP为192.168.1.100deb [archarm64] http://192.168.1.100/kylin-server-v10-sp1-arm64 10.1 main restricted universe multiverse更新客户端软件源apt update对于需要严格版本控制的环境可以固定软件包版本apt install -y apt-show-versions apt-show-versions | grep upgradable仓库维护技巧定期清理旧版本软件包保留2-3个版本即可使用apt-mirror的clean指令删除不再需要的软件包监控仓库存储空间使用情况设置预警机制# 示例清理脚本 vi /data/apt-mirror/var/clean.sh添加以下内容#!/bin/bash find /data/apt-mirror/mirror -name *.deb -mtime 90 -exec rm -f {} \;6. 灾备与高可用方案对于关键业务环境建议部署多台镜像服务器组成高可用集群。方案一rsync实时同步在主仓库服务器上配置rsync服务apt install -y rsync vi /etc/rsyncd.conf添加以下内容[apt-repo] path /data/apt-mirror/mirror comment Kylin APT Repository uid root gid root read only yes list yes auth users repouser secrets file /etc/rsyncd.secrets创建认证文件echo repouser:password123 /etc/rsyncd.secrets chmod 600 /etc/rsyncd.secrets systemctl restart rsync在备用服务器上设置定时同步crontab -e # 每6小时同步一次 0 */6 * * * rsync -avz --delete repouser主服务器IP::apt-repo /data/apt-mirror/mirror/方案二分布式存储后端对于超大规模环境可以考虑使用Ceph或MinIO作为存储后端# 安装MinIO客户端 wget https://dl.min.io/client/mc/release/linux-arm64/mc chmod x mc mv mc /usr/local/bin/ # 配置MinIO访问 mc alias set myminio http://minio-server:9000 ACCESS_KEY SECRET_KEY # 设置自动同步 mc mirror --watch /data/apt-mirror/mirror myminio/apt-repo在实际的政务云项目中我们采用了方案一结合Nginx负载均衡的架构成功支持了500服务器同时进行软件更新的场景。关键是要根据实际网络环境和业务需求选择合适的方案。

更多文章