有网友在openeuler22.03LTS系统平台部署好salt-master和salt-minion,服务起来了,但是master段发现不了minion,咨询该如何解决,本文提示相关排查方向和解决办法。
排查方向:
master和minion服务状态正常,那么问题就是在网络通达性上。
master和minion使用AES加密的ZeroMQ连接的,通过在master的TCP端口4505和4506进行侦听,这些端口需要在主机上放开外部访问,而minion端是没有启用侦听端口的。
一、检查minion和master是否起了防火墙
在openeuler22.03LTS系统上有三个系统应用可以对服务器进行安全防护
- SELinux--基于Linux内核的安全增强
- iptable--IP 信息包过滤防火墙管理工具
- firewalld--redhat/CentOS7以后的系统默认的防火墙配置管理工具
其中firewalld和iptables都是用来管理防火墙的用户态工具,可用来定义防火墙的各种规则功能,内部结构都指向内核态的nnetfilter网络过滤子系统来实现包过滤防火墙功能。对测试服务器,建议三个服务都进行关闭,对生产服务器,建议根据需要保留2或3,其余关闭。
1、SElinux管理
- 查看运行状态:getenforce
输出结果
enforcing - SELinux安全策略生效
permissive - SELinux提示警告信息而不是强制阻止
disabled - SELinux安全功能禁用
- 临时停用:setenforce 0
此命令将SELinux置为permissive模式,不再进行安全限制
永久停用:修改/etc/selinux/config文件,设置SELINUX=disabled
2、iptable
- 查看运行状态:systemctl status iptables
- 临时停用:systemctl stop iptables
- 禁止开机启动:systemctl disable iptables
- 在运行态添加saltstack端口放行:
-A INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT
-A INPUT -m state --state new -m tcp -p tcp --dport 4506 -j ACCEPT
3、firewalld
- 查看运行状态:systemctl status firewalld
- 临时停用:systemctl stop firewalld
- 禁止开机启动:systemctl disable firewalld
- 在运行态添加saltstack端口放行(将zone名换成实际对应zone名):
firewall-cmd --permanent --zone=<zone> --add-port=4505-4506/tcp
二、检查minion是否正确配置了masterIP
执行指令:
# egrep -v "^#|^$" /etc/salt/minion
master: 192.168.1.1
id: test-192.168.1.118
hash_type: sha256
master段配置正确的服务器IP;id段配置客户端的id信息,建议格式为“系统英文-用途英文-IP”;启用hash:sha256。注意配置项和值中间有一个空格,配置修改后需重启服务。
三、检查master是否侦听在正确的IP
执行指令:
# egrep "^interface" /etc/salt/master
interface: 192.168.1.1
对应/etc/salt/master 配置文件中interface配置项的值应为minion网络访问可达的服务器上侦听的IP,注意配置项和值中间有一个空格,配置修改后需重启服务。
四、检查minion和master之间是否有网络硬件防火墙,是否配置了相关策略
请联系网络硬件设备管理员,看minion和master之间是否有网络硬件防火墙,需放开minion至服务器TCP端口4505和4506的端口访问。
五、检查minion和master互相网络和端口是否可达
在minion端执行:
# telnet 192.168.1.1 4506
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
Connection closed by foreign host.
# telnet 192.168.1.1 4505
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
以上回显"Connected to 服务器IP. Escape character is '^]'."即表示minion至服务器侦听端口网络没有问题了。
解决网络问题后,即可用saltstack指令进行客户端添加及远程维护操作了。