6 部署 Salt #
  SUSE Enterprise Storage 使用 Salt 和 ceph-salt 进行初始集群准备。Salt 可帮助您从一个名为 Salt 主控端的专用主机同时针对多个集群节点配置和运行命令。在部署 Salt 之前,请考虑以下要点:
 
- Salt 受控端是由一个名为 Salt 主控端的专用节点控制的节点。 
- 如果 Salt 主控端主机应属于 Ceph 集群的一部分,则它需要运行自己的 Salt 受控端,但这不是必须的。 提示:每台服务器共享多个角色- 如果将每个角色都部署在一个独立节点上,则 Ceph 集群的性能是最佳的。但实际部署有时会要求多个角色共享一个节点。为避免性能欠佳以及升级过程出现问题,请勿向管理节点部署 Ceph OSD、元数据服务器或 Ceph Monitor 角色。 
- Salt 受控端需要能通过网络正确解析 Salt 主控端的主机名。默认情况下,受控端 会查找 - salt主机名,但您可以在- /etc/salt/minion文件中指定可通过网络访问的任何其他主机名。
- 在 Salt 主控端节点上安装 - salt-master:- root@master #zypper in salt-master
- 检查 - salt-master服务是否已启用并启动,并根据需要将它启用并启动:- root@master #systemctl enable salt-master.service- root@master #systemctl start salt-master.service
- 如果要使用防火墙,请确认 Salt 主控端节点是否为所有 Salt 受控端节点打开了端口 4505 和 4506。如果这些端口处于关闭状态,可以使用 - yast2 firewall命令并通过允许相应区域的 服务来打开这些端口。例如,- public。
- 在所有受控端节点上安装 - salt-minion软件包。- root@minion >zypper in salt-minion
- 编辑 - /etc/salt/minion并取消注释以下行:- #log_level_logfile: warning - 将 - warning日志级别更改为- info。注意:- log_level_logfile和- log_level- log_level用于控制屏幕上将显示的日志消息,而- log_level_logfile用于控制哪些日志消息将写入到- /var/log/salt/minion。注意- 请务必更改所有集群(受控端)节点上的日志级别。 
- 确保所有其他节点都可以将每个节点的完全限定域名解析为公共集群网络上的 IP 地址。 
- 将所有受控端配置为连接到主控端。如果无法通过主机名 - salt访问 Salt 主控端,请编辑文件- /etc/salt/minion,或创建包含以下内容的新文件- /etc/salt/minion.d/master.conf:- master: host_name_of_salt_master - 如果对上述配置文件执行了任何更改,请在所有相关的 Salt 受控端上重启动 Salt 服务: - root@minion >systemctl restart salt-minion.service
- 检查所有节点上是否已启用并启动 - salt-minion服务。根据需要启用并启动该服务:- #systemctl enable salt-minion.service- #systemctl start salt-minion.service
- 确认每个 Salt 受控端的指纹,如果指纹匹配,则接受 Salt 主控端上的所有 Salt 密钥。 注意- 如果 Salt 受控端指纹返回空白,请确保 Salt 受控端具有 Salt 主控端配置且可与 Salt 主控端通讯。 - 查看每个受控端的指纹: - root@minion >salt-call --local key.finger local: 3f:a3:2f:3f:b4:d3:d9:24:49:ca:6b:2c:e1:6c:3f:c3:83:37:f0:aa:87:42:e8:ff...- 收集到所有 Salt 受控端的指纹后,将列出 Salt 主控端上所有未接受受控端密钥的指纹: - root@master #salt-key -F [...] Unaccepted Keys: minion1: 3f:a3:2f:3f:b4:d3:d9:24:49:ca:6b:2c:e1:6c:3f:c3:83:37:f0:aa:87:42:e8:ff...- 如果受控端的指纹匹配,则接受这些密钥: - root@master #salt-key --accept-all
- 校验是否已接受密钥: - root@master #salt-key --list-all
- 测试是否所有 Salt 受控端都响应: - root@master #salt-run manage.status