标题说明了一切。我已经在主服务器和几个从服务器上安装了 salt。在主服务器上,我只安装了基本的 salt 组件(不包括 salt-minion)并运行了更新。
我将 minions 指向 master 的 IP,但它们没有出现。经过进一步调查,似乎导致该问题的原因在于“salt master 没有运行”。
所以我去运行“salt-master -d”来启动它并得到:
WARNING: Unable to bind socket 0.0.0.0:4505, error: [Errno 98] Address already in use; Is there another salt-master running?
The salt master is shutdown. The ports are not available to bind
“salt-master -l debug”给了我
[DEBUG ] Reading configuration from /etc/salt/master
[DEBUG ] Configuration file path: /etc/salt/master
[WARNING ] Insecure logging configuration detected! Sensitive data may be logged.
[INFO ] Setting up the Salt Master
[WARNING ] Unable to bind socket 0.0.0.0:4505, error: [Errno 98] Address already in use; Is there another salt-master running?
[INFO ] The Salt Master is shut down
[INFO ] PIDfile could not be deleted: /var/run/salt-master.pid
[DEBUG ] Stopping the multiprocessing logging queue listener
[DEBUG ] closing multiprocessing queue
[DEBUG ] joining multiprocessing queue thread
[DEBUG ] Stopped the multiprocessing logging queue listener
肯定没有其他主进程正在运行。Top 显示确实有很多 salt 进程正在运行,按照网上的一些建议,我尝试 killall 并重新开始。这次它似乎成功了,但当我尝试运行任何命令时,我得到的
[ERROR ] An un-handled exception was caught by salt's global exception handler:
KeyError: 'consul.list'
我不知道发生了什么,我正准备去重启服务器并重新安装所有东西,因为什么都不起作用。但我隐隐觉得第二次也不会有什么不同。
如果有帮助的话,主机正在运行 Ubuntu 18.04 服务器,并安装 Py3 版本的 SaltStack。
答案1
通过搜索 SaltStack 故障排除文档我发现:
对于主服务器,TCP 端口 4505 和 4506 需要打开。如果您已将 Salt 主服务器和从服务器都置于调试模式,但没有看到从服务器已连接的确认,则很可能是防火墙干扰了连接。
您可以找到防火墙规则/etc/ufw/applications.d/salt.ufw
并启用ufw allow salt