我正在尝试找出一种解决方案来管理一组linux机器(操作系统:Ubuntu,大约40个节点。相同的硬件)。这些机器被认为是彼此的镜像,安装在其中一台机器上的软件需要安装在另一台机器上。我的软件需求是hadoop、R和servicemix。R所有机器上的软件包也需要同步(一个机器上安装的软件包需要在所有其他机器上都可用)
我现在使用的一种解决方案是使用NFS和pssh。我希望有一个更好/更简单的解决方案,它会让我的生活变得更容易一些。任何建议都是值得感谢的。
发布于 2011-04-05 14:59:17
两个流行的选择是Puppet Labs的Puppet和OpsCode的Chef。
另一种可能的机制是创建一个新的元包,它Requires:你想要安装在所有机器上的包。当您修改您的元包时,apt-get update && apt-get -u dist-upgrade将同时在您的所有系统上安装新包。
metapackage方法最初配置和使用的工作量可能较少,但从长远来看,Puppet或Chef可能会提供更好的投资回报,因为它们可以管理的远不止包安装。
发布于 2011-04-05 19:36:10
为此,我在过去使用了一个低技术的方法,简单地共享(至少是部分) /usr/local/,以便在/usr/local/lib/R/site-library/中保留一个公共的R库。我想这也适用于您的Hadoop安装。
我尽量将其余部分保存在Debian / Ubuntu包中,并保持所有节点都是最新的。本地R和Ubuntu包存储库(用于本地创建的包)也可以提供帮助,但需要做更多的工作。
https://stackoverflow.com/questions/5548224
复制相似问题