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核心端口:
需看到4505(publish)和4506(ret)端口处于ss -tulpn | grep salt-masterLISTEN状态 - 临时关闭防火墙与SELinux测试连通性:
若测试有效,永久配置防火墙规则:systemctl stop firewalld setenforce 0firewall-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
相关产品推荐
相关产品推荐

