configurationpipe理:跨机器依赖关系

我曾经使用过木偶这样的工具来pipe理个人系统,而且成功率很高。 傀儡堕落的地方在于它不擅长pipe理个人服务器之外的依赖关系。

例如,在MySQL服务器上,我configurationpuppet来执行以下操作:

  • 在计算机上configuration身份validation以启动我的LDAP服务器
  • configurationapt使用我的本地存储库镜像
  • 安装MySQL包
  • 写my.cnf
  • 启动MySQL
  • 在数据库中创build用户

在这组步骤中,有一些依赖关系已解决 – 例如,除非安装了软件包,否则我无法启动数据库服务,除非正确configurationapt repo,否则我无法执行此操作。

这个MySQL服务器是主 – >主复制设置中的一个框。 在一个理想的世界里,puppet(或者其他类似的工具)会让我performance出这样一个事实:服务器B需要等到服务器A可用,然后尝试与它build立复制关系。

这里有很多文字 – 基本上我问的是:像puppet这样的工具可以像这样pipe理机器间的依赖吗?

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

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

由于在主设备可用之前configurationMySQL从设备并不是完全致命的,所以您可能希望走这条路。 虽然我觉得这不是很“聪明”。

不是一个木偶用户,我敢肯定其他人会用更合适的答案作为参考,但是听起来像一个包装脚本可以相对容易地执行,在启动服务之前进行检查。

木偶可以做到这一点很好。 让每个服务器导出一个资源来configuration其他合适的服务器,以便在启动和运行之后完成需要完成的工作。 我没有MySQL的例子,但是我们用这种方法configuration了很多 (比如目前的80个)DRBD资源,以及我们所有的Nagiosconfiguration。

控制层可能是你以后的事情。 你可以把它和木偶一起使用,这样学习曲线就不会太陡。