欢迎光临
我们一直在努力

构建高可用 SaltStack 环境:多 Master 配置实战指南

引言

SaltStack 自 0.16.0 版本起,引入了 Minion 同时连接多个 Master 的特性,即多 Master(multi-master)配置。该模式为基础设施提供了冗余能力,确保在单个 Master 故障时,Minion 仍可接受其他 Master 的管理。本文将逐步说明如何搭建多 Master 环境,并确保各 Master 之间的配置与数据保持一致。

Master 密钥同步

在多 Master 架构中,所有 Master 必须使用相同的私钥(private key)。这些密钥在 Master 首次启动时自动生成。因此,在添加第二个 Master 时,需要从原始 Master 复制其私钥到新 Master,并覆盖新 Master 自动生成的密钥。

Master 的私钥存储于其本地的 pki_dir 目录,默认路径为 /etc/salt/pki/master/master.pem。复制该文件到新 Master 的对应位置。注意,在复制过程中,应确保新 Master 上尚无 Minion 连接,以免产生密钥不匹配的问题。

配置 Minion 连接多个 Master

Minion 需要知道所有 Master 的网络地址。编辑 Minion 配置文件(默认位于 /etc/salt/minion),找到 master 配置项,并列出所有 Master 的地址。示例配置如下:

master:
  - master1.example.tld
  - master2.example.tld

修改完成后,重启 Minion 服务使配置生效。此后,所有 Master 均可对 Minion 进行管理。

Master 间文件共享

SaltStack 不会自动在 Master 间同步文件。为确保一致性,需要手动同步以下关键数据。

Minion 密钥

每个 Master 都需要接受 Minion 的密钥。可以使用 salt-key 命令手动接受,或保持密钥目录同步。需要同步的目录包括:

  • /etc/salt/pki/master/minions
  • /etc/salt/pki/master/minions_pre
  • /etc/salt/pki/master/minions_rejected

注意:强烈不建议直接共享 /etc/salt/master 目录。允许外部访问 master.pem 密钥会带来严重的安全风险。

file_roots 同步

file_roots 中存放着 Salt State 配置管理文件,需要在 Master 间保持一致。推荐使用 gitfs 后端进行同步,或将 file_roots 目录放置在共享存储上。

pillar_roots 同步

同理,pillar_roots 中的 Pillar 数据也需要保持同步,以确保所有 Master 提供一致的配置数据。

Master 配置一致性

最后,需要确保 Master 的配置选项在所有 Master 间保持一致。特别是以下设置:

  • external_auth
  • client_acl
  • peer
  • peer_run

除非明确知道不需要,否则应保证这些配置在所有 Master 上完全相同。

结论

多 Master 配置为 SaltStack 环境提供了冗余性,且配置过程相对简单。只需确保 Master 密钥、Minion 密钥、State 文件及 Pillar 数据在 Master 间同步,即可实现透明的多 Master 管理,提升自动化运维的可靠性与可用性。

赞(0) 打赏
未经允许不得转载:云服务器推荐 » 构建高可用 SaltStack 环境:多 Master 配置实战指南

评论 抢沙发

更好的WordPress主题

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册