配置管理:跨计算机依赖性


8

我使用过诸如puppet之类的工具来管理单个系统,通常取得了很高的成功。木偶失败的地方在于它不善于管理单个服务器外部的依赖关系。

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

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

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

该MySQL服务器是master-> master复制设置中的一个框。在理想的情况下,p(或其他类似工具)将让我代表一个事实,即服务器B需要等到服务器A可用后再尝试与之建立复制关系。

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

Answers:


4

如果您使用的是Puppet,则导出的资源(以及因此存储的config)是该工作的工具。这使您可以在节点之间共享信息。如果需要,包括实际的复制设置。

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

由于在主服务器可用之前配置MySQL从服务器并不是完全致命的,因此您不妨沿着这条路走。不过,在我看来,这还不算“聪明”。


0

我不是伪造的用户,我敢肯定其他人会以更适当的答案参与其中,但这听起来像是可以相对容易地实现包装脚本,以便在启动服务之前进行检查。


0

木偶可以做到这一点。让每台服务器导出资源以配置其他适当的服务器,使其在启动并运行后执行所需的操作。我没有MySQL的示例,但是我们以这种方式配置了很多(如当前数量大约80个)DRBD资源,以及我们所有的Nagios配置。


0

控制层很可能就是您所追求的。您可以将其与人偶结合使用,这样学习曲线就不会太陡。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.