我使用像木偶这样的工具来管理个人系统,通常取得了很大的成功.木偶失败的地方在于它不善于管理单个服务器之外的依赖关系. 例如,在MySQL服务器上,我配置puppet来执行以下操作: 在计
例如,在MySQL服务器上,我配置puppet来执行以下操作:
>在计算机上配置身份验证以访问我的LDAP服务器
>配置apt以使用我的本地存储库镜像
>安装MySQL包
>写my.cnf
>启动MySQL
>在数据库中创建用户
在这组步骤中,有许多依赖项被解析 – 例如,除非我已经安装了软件包,否则我无法启动数据库服务,除非正确配置了apt repo,否则我无法做到这一点.
此MySQL服务器是master->主复制设置中的一个框.在一个理想的世界中,puppet(或其他类似的工具)让我代表服务器B需要等到服务器A可用然后尝试与它建立复制关系这一事实.
这里有很多文字 – 基本上我要问的是:有没有像puppet这样的工具可以管理这样的机器间依赖?
如果你正在使用Puppet,那么 exported resources(以及 stored configs)就是这项工作的工具.这允许您在节点之间共享信息.如果需要,包括实际的复制设置.或者,虽然我自己不是订阅者,但有些人将其清单/运行视为非确定性的.意味着单次运行不一定声明节点的完整结果.在节点达到其所需状态之前,可能需要两次或更多次运行.
由于在主设备可用之前配置MySQL从设备并不是完全致命的,因此您可能希望沿着这条路走下去.虽然我认为它并不那么“聪明”.