You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Salt Minion无法连接Master认证超时及Master进程异常求助

解决Salt Master与Minion连接超时及Master日志TypeError异常问题

问题定位

该异常TypeError: argument must be an int, or have a fileno() method通常和Salt Master的文件描述符管理、Python依赖冲突或认证缓存异常相关,结合连接超时现象,按以下步骤排查修复:


1. 调整Master文件描述符限制

  • 编辑Salt Master配置文件/etc/salt/master,添加或修改以下配置:
    max_open_files: 65535
    worker_threads: 4  # 建议设置为CPU核心数的2倍
    
  • 修改系统级文件描述符限制,编辑/etc/security/limits.conf:
    salt-master soft nofile 65535
    salt-master hard nofile 65535
    
  • 重启Salt Master服务:
    systemctl restart salt-master
    
  • 验证生效:su - salt-master -c "ulimit -n",确认输出为65535

2. 清理认证缓存与重建密钥

  • Master端清理缓存并删除旧Minion密钥:
    rm -rf /var/cache/salt/master/*
    salt-key -L  # 查看所有已注册/待注册Minion ID
    salt-key -d <目标Minion ID>
    
  • Minion端删除旧密钥文件并重启服务:
    rm -rf /etc/salt/pki/minion/*
    systemctl restart salt-minion
    
  • Master端接受新密钥:
    salt-key -a <目标Minion ID>
    

3. 检查网络与端口状态

  • 确认Master监听Salt核心端口:
    ss -tulpn | grep salt-master
    
    需看到4505(publish)和4506(ret)端口处于LISTEN状态
  • 临时关闭防火墙与SELinux测试连通性:
    systemctl stop firewalld
    setenforce 0
    
    若测试有效,永久配置防火墙规则:
    firewall-cmd --add-port=4505/tcp --permanent
    firewall-cmd --add-port=4506/tcp --permanent
    firewall-cmd --reload
    setsebool -P salt_master_can_network_connect on
    systemctl start firewalld
    setenforce 1
    

4. 修复Python依赖冲突

  • 重新安装Salt核心组件,修复可能损坏的依赖:
    yum reinstall salt-master salt-minion -y
    
  • 检查并调整cryptography库版本(Salt 3005系列兼容38.0.x版本):
    pip show cryptography
    pip install cryptography==38.0.4 -U
    
  • 重启Salt服务:
    systemctl restart salt-master salt-minion
    

内容的提问来源于stack exchange,提问作者NaushadNaleer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 04:32:17