在银河麒麟OS上部署SaltStack需绕过仓库缺失、Python版本不匹配(须3.6≤版本<3.10)、systemd服务异常三大障碍;确认aarch64/x86_64架构、降级Python 3.11、禁用SELinux后,可通过软件商店一键安装或离线pip安装(须先装PyYAML-6.0与pyzmq-25.0.0),再完成Minion密钥预置、配置指向、认证接受及test.ping验证。

在银河麒麟OS上部署SaltStack实现服务器批量运维,需绕过默认仓库缺失、Python环境不匹配、systemd服务注册异常三大障碍。
确认系统架构与基础环境
执行 uname -m 查看当前CPU架构,银河麒麟V10常见为 【aarch64】 或 【x86_64】;若返回 aarch64,后续必须使用对应架构的离线包,混用x86_64安装包将导致pwsh无法启动或salt-minion段错误。
运行 python3 --version 确认Python版本,银河麒麟V10 SP1默认为Python 3.7.3或3.9.2;SaltStack 3003.1要求Python ≥3.6且<3.10,若为3.11则必须降级或编译安装,否则salt-call会报ModuleNotFoundError: No module named 'distutils.util'。
检查是否已禁用SELinux:getenforce。银河麒麟默认未启用SELinux,但若输出Enforcing,需临时设为permissive:sudo setenforce 0,否则minion启动后无法绑定4505/4506端口。
安装SaltStack主控端(Master)
方法一:使用银河麒麟软件商店一键安装(仅限X86-64桌面版)
打开“麒麟软件商店”→顶部搜索框输入“salt-master”→点击“SaltStack主控端”→点击“安装”。该包已预置systemd服务文件并自动配置/etc/salt/master监听0.0.0.0:4506,无需手动修改。
方法二:离线安装(推荐用于ARM64服务器版或等保加固环境)
下载适配Euler 2.8 aarch64的SaltStack 3003.1离线包(含17个whl/gz文件),解压后进入目录执行:pip3 install --find-links . --no-index salt==3003.1。
【关键前提】必须先安装PyYAML-6.0和pyzmq-25.0.0两个whl包,否则pip会因依赖循环失败退出。
安装完成后运行:sudo systemctl enable salt-master && sudo systemctl start salt-master,检查状态:sudo systemctl status salt-master | grep "active (running)"。
部署被控端(Minion)并完成认证
第一步:生成密钥对并预置公钥到Master
在Minion机器上执行:sudo salt-key --gen-keys=minion,生成minion.pem(私钥)和minion.pub(公钥);将minion.pub内容复制,到Master机器执行:sudo cp /path/to/minion.pub /etc/salt/pki/master/minions/minion-id,其中minion-id需与Minion配置中的id:字段完全一致。
第二步:配置Minion指向Master IP
编辑/etc/salt/minion,取消注释并修改:master: 192.168.10.5(替换为真实Master内网IP);确保id: web01不为空且全局唯一,重复ID会导致Master拒绝接收key。
第三步:启动服务并验证连接
执行:sudo systemctl enable salt-minion && sudo systemctl start salt-minion;等待30秒后,在Master上运行:sudo salt-key -L,若看到minion-id出现在Unaccepted Keys列表中,说明网络通且Minion已发起认证请求。
第四步:接受密钥并测试连通性
执行:sudo salt-key -a minion-id → 输入y确认;随后立即测试:sudo salt 'minion-id' test.ping,返回True即表示通信成功。











