saltstack安装加速
参考资料
saltstack安装加速
SaltStack 安装加速实战指南
SaltStack(现称 Salt Project)采用 C/S 架构,由 Master 和 Minion 组成。在默认配置下,安装过程往往需要访问境外源,速度慢、易超时。本文从软件源、Python 依赖、批量部署三个层面给出可落地的加速方案。
一、为什么默认安装很慢
SaltStack 的安装慢,通常来自三个环节:
- 仓库源在国外:官方 `repo.saltproject.io` 与 `pypi.org` 直连延迟高。
- 依赖包多:`salt-minion` 依赖 Python、pyzmq、cryptography 等,逐个下载耗时明显。
- 批量部署重复下载:几百台 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/
