参考资料

  1. 国内常用的镜像站主要分为高校/科研机构和互联网企业两大类
  2. pytorch安装加速
  3. wireshark安装加速
  4. nginx安装加速
  5. pkgsrc.git安装加速
  6. nix4loong安装加速
  7. pipxe安装加速
  8. scoop-extras.git安装加速

saltstack安装加速

SaltStack 安装加速实战指南

SaltStack(现称 Salt Project)采用 C/S 架构,由 Master 和 Minion 组成。在默认配置下,安装过程往往需要访问境外源,速度慢、易超时。本文从软件源、Python 依赖、批量部署三个层面给出可落地的加速方案。

一、为什么默认安装很慢

SaltStack 的安装慢,通常来自三个环节:

  1. 仓库源在国外:官方 `repo.saltproject.io` 与 `pypi.org` 直连延迟高。
  2. 依赖包多:`salt-minion` 依赖 Python、pyzmq、cryptography 等,逐个下载耗时明显。
  3. 批量部署重复下载:几百台 Minion 各自去公网拉包,带宽成为瓶颈。

针对性地替换源、复用缓存,是提速的核心思路。

二、操作系统层加速:替换系统源

无论用 apt 还是 yum,先让系统包管理器走国内镜像。

Debian / Ubuntu: bash

备份原配置

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

替换为镜像源(以某镜像站为例,按需替换域名)

sudo sed -i 's|archive.ubuntu.com|mirrors.aliyun.com|g' /etc/apt/sources.list sudo apt update RHEL / CentOS / Rocky: bash sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

替换 baseurl 为国内镜像

sudo sed -i 's|mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-Base.repo sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-Base.repo sudo dnf makecache 系统源替换完成后,后续安装 Salt 的基础依赖会明显加快。

三、SaltStack 仓库加速

3.1 使用镜像的 Salt 仓库

官方提供 apt/yum 仓库。可将仓库地址指向国内镜像(若镜像站提供 Salt 仓库)。以 apt 为例: bash

添加 Salt 仓库(示例结构,域名按实际镜像替换)

echo "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg] \ http://mirrors.example.com/saltproject/apt/ubuntu/22.04/amd64/3006 jammy main" \ | sudo tee /etc/apt/sources.list.d/salt.list sudo apt update sudo apt install -y salt-minion 如果所用镜像站未同步 Salt 仓库,可直接使用官方仓库,但仍建议保证系统源为国内镜像,以减少整体耗时。

3.2 用 pip 装时更换 PyPI 源

通过 pip 安装 Salt 组件时,指定国内 PyPI 镜像能显著提速: bash pip install -i https://pypi.tuna.tsinghua.edu.cn/simple salt 永久配置: bash pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn

四、使用代理加速(网络受限环境)

在无法直接使用镜像、必须访问某特定源时,可配置代理。

临时环境变量: bash export http_proxy="http://proxy.example.com:8080" export https_proxy="http://proxy.example.com:8080" export no_proxy="localhost,127.0.0.1,10.0.0.0/8" 为包管理器单独配置: bash

APT

echo 'Acquire::http::Proxy "http://proxy.example.com:8080";' \ | sudo tee /etc/apt/apt.conf.d/95proxy 代理只应作为网络受限时的补充手段,且需确保 `no_proxy` 覆盖内网与回环地址,避免内网通信被绕行。

五、离线与内网批量部署加速

当 Minion 数量较多时,逐台联网安装效率最低。推荐两种方式。

5.1 本地仓库镜像

在 Master 或专用镜像节点上搭建本地 yum/apt 仓库,Minion 从内网拉取: bash

yum 场景:同步仓库到本地目录

sudo dnf install -y createrepo_c sudo reposync --repoid=salt -p /var/www/html/salt-repo sudo createrepo_c /var/www/html/salt-repo 随后让 Minion 指向该内网仓库,下载速度取决于内网带宽,通常远快于公网。

5.2 缓存与分发安装包

先在一台机器上下载好全部 `.deb` / `.rpm` 包,再分发到各节点本地安装: bash

apt:仅下载不安装

sudo apt-get install -y --download-only salt-minion

收集缓存

sudo cp /var/cache/apt/archives/*.deb /srv/pkgs/ 批量分发可用 Salt 的 `cp.get_file` 或 Ansible、scp 等工具实现。

六、Salt 自身的性能调优

安装完成后,若感觉执行慢,可调整 Minion 并发与超时: yaml

/etc/salt/minion

master: 10.0.0.10

并发执行线程数

multiprocessing: True

降低启动等待

random_startup_delay: 0 Master 端在 `/etc/salt/master` 中控制并发: yaml worker_threads: 10 合理设置可避免大批量 Minion 同时上线造成拥塞。

七、加速方案对照表

场景推荐方案提速点
少量节点、能上网系统源 + PyPI 国内镜像减少公网延迟
网络受限配置代理 + no_proxy绕过不可达源
大批量内网节点本地仓库 / 缓存分发内网带宽复用
长期运维镜像站 + 缓存 + 并发调优综合稳定性

八、常见问题

  • 仓库签名校验失败:确认 keyring 文件已正确导入,或使用 `trusted=yes`(不推荐用于生产)。
  • 代理生效但内网不通:检查 `no_proxy` 是否包含内网网段。
  • 安装成功但 Minion 连不上 Master:确认 4505/4506 端口放行,与安装加速无关。
  • 版本不一致:Master 与 Minion 主版本应尽量一致,避免兼容问题。

小结

SaltStack 安装加速的本质,是把境外依赖变成内网流量:先替换系统源和 PyPI 源,再按网络条件选择镜像或代理,节点规模大时改用本地仓库与缓存分发。三步做完,绝大多数环境的安装速度都能得到明显改善。

作者:王壹杰
时间:2026-10-07
来源:https://mirror.ciilii.com/