配置管理:跨机依赖

Jon*_*per 8 automation puppet

我使用过像 puppet 这样的工具来管理单个系统,通常取得了很高的成功。puppet 失败的地方在于它不擅长管理单个服务器之外的依赖项。

例如,在 MySQL 服务器上,我将 puppet 配置为执行以下操作:

  • 在机器上配置身份验证以访问我的 LDAP 服务器
  • 配置 apt 以使用我的本地存储库镜像
  • 安装 MySQL 包
  • 写我的.cnf
  • 启动 MySQL
  • 在数据库中创建用户

在这组步骤中,解决了许多依赖项 - 例如,除非我安装了软件包,否则我无法启动数据库服务,除非正确配置了 apt 存储库,否则我无法启动。

这个 MySQL 服务器是 master->master 复制设置中的一个盒子。在理想的世界中,puppet(或其他类似工具)会让我表示服务器 B 需要等到服务器 A 可用,然后尝试与其建立复制关系的事实。

这里有很多文字 - 基本上我要问的是:有没有像 puppet 这样的工具可以像这样管理机器间的依赖关系?

Dan*_*ley 4

如果您使用的是 Puppet,那么导出的资源(以及存储的配置)就是完成这项工作的工具。这允许您在节点之间共享信息。如果需要,包括实际的复制设置。

另外,虽然我自己不是订阅者,但有些人将他们的清单/运行视为不确定的。这意味着单次运行不一定声明节点的完整结果。在节点达到其所需状态之前,可能需要运行两次或多次。

由于在主服务器可用之前配置 MySQL 从服务器不会完全致命,因此您可能希望走这条路。但在我看来,它并不那么“聪明”。