AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 13168
In Process
p.campbell
p.campbell
Asked: 2009-05-28 09:55:20 +0800 CST2009-05-28 09:55:20 +0800 CST 2009-05-28 09:55:20 +0800 CST

管理 Linux 集群

  • 772
锁定。这个问题及其答案被锁定,因为这个问题离题但具有历史意义。它目前不接受新的答案或交互。

我有兴趣了解用于管理许多 Linux 机器的工具和技术。(即部署和维护更新。)

我想到的一种方法是编写一个 Bash 脚本,将另一个脚本上传到服务器并按顺序为每个服务器执行脚本。例如:

foreach server
{
     connect to server and scp update_script.sh to ~/scripts
     ssh user@server -e "sh ~/scripts/update_script.h"
}

update_script 将使用apt-get/aptitudeoryum或其他任何方式来更新服务器上的包。

有没有更好的方法来做这样的事情?

linux cluster
  • 9 9 个回答
  • 4453 Views

9 个回答

  • Voted
  1. gbjbaanb
    2009-05-28T09:55:20+08:002009-05-28T09:55:20+08:00

    试试木偶

    另一个优秀(真正优秀)的工具是 Webmin,如果你添加几台一起运行 webmin 的服务器(在 webmin 界面中),你可以在其集群页面中推送更新和查看包配置。

    另一种更适合推出图像的替代方案是 SystemImager

    • 11
  2. jldugger
    2009-05-28T20:35:24+08:002009-05-28T20:35:24+08:00

    ClusterSSH是您正在寻找的。它提供了一种向集群中的所有节点广播命令的方法。把它想象成BashReduce没有 Reduce。

    • 3
  3. Bill B
    2009-05-28T09:55:20+08:002009-05-28T09:55:20+08:00

    其他人已经提到了 Puppet。

    同样,我可以推荐 Cfengine。学习曲线可能有点陡峭,但是一旦掌握了窍门,那就太好了。我用它来管理大约 50 台服务器,我不敢相信没有它我还能相处得很好。

    • 2
  4. p.campbell
    2009-05-28T10:00:45+08:002009-05-28T10:00:45+08:00

    试试Capistrano。它就像上面的 bash foreach 循环一样工作,但它基于 Ruby 而不是 bash。Capistrano 用于操作任务(a la:将服务器置于维护模式,退出维护模式)

    为木偶+1。它非常适合使系统处于已知状态的幂等操作。

    • 2
  5. p.campbell
    2009-05-28T09:55:20+08:002009-05-28T09:55:20+08:00

    如果您希望能够在 Linux 系统集群上并行运行命令,可能会感兴趣以下内容之一:

    • Pdsh 上 Livermore 的 Linux
    • TheEther 的 pssh

    作为配置大型系统网络的一般方法 - 您可能希望使用已经提到的工具,例如 cfengine 和 puppet。

    • 1
  6. 2009-05-30T06:09:02+08:002009-05-30T06:09:02+08:00

    查看 Func 以同时在多个服务器上运行“事物”。谷歌搜索“func redhat”

    此外,如果您喜欢 puppet,您应该查看 Chef opscode dot com。它解决了一些 puppets 问题,并且配置文件是用 ruby​​ 而不是 DSL 编写的。ohai 也是 facter 的信息量更大的版本。Bcfg2 也是另一个用 python 编写的配置管理工具。它对于高安全性或审计来说很酷,因为每个包都可以考虑,所以如果在 bcfg2 之外添加了一些东西,它会标记一个警报。它的缺点是它们自己用 XML 编写的配置文件。

    我有一堆链接,但我猜新用户不能发布超链接。

    • 1
  7. Elvian
    2009-05-28T09:55:20+08:002009-05-28T09:55:20+08:00

    即使您的想法对我来说似乎并不坏,我也不太了解脚本部署。但是,如果您想在管理 Linux 机器的过程中监控它们,我强烈建议使用Nagios执行此任务。

    如果您希望 Nagios 处理比通常的默认任务更多的任务,那么配置Nagios有点麻烦(就像任何 linux 软件一样,请注意),但您在他们的网站上有大量文档:nagios.sourceforge.net/docs/3_0/目录.html

    当然,它是免费的;)

    • 0
  8. dannysauer
    2009-05-28T09:55:20+08:002009-05-28T09:55:20+08:00

    “许多”是一个多大的群体?如前所述,如果 Webmin 能满足您的需求,它就很好 - 您可以使用 https 运行任意命令并执行一些常见的管理任务(如同步本地用户)。因此,您的开销比 ssh 方法少。Webmin 的集群工具适用于“数十”台机器;我从来没有在更大的群体上尝试过。还有提到的cfengine - 它可以用于小型到非常大的机器组(如数千台),因为它可以根据需要进行分层管理(一个主机,然后是一些子主机等)。我目前正在使用它来管理大约 3500 台不同风格的 Unix 机器的网络。正如另一位海报所说,最初学习很痛苦,但效果很好。

    如果你的系统是同构的,或者至少是相当同构的组,并且你没有很多(比如,不到几百个),那么有几个很好的集群管理工具集。Oscar 项目已经组装了一些用于管理集群的管理工具:http://svn.oscar.openclustergroup.org/trac/oscar,还有其他类似项目的名字让我无法理解(我可能很快就会记得正如我发布的那样)。

    简单来说,Linux Journal 上讨论了一些并行 ssh 工具:http://www.linux.com/archive/feature/151340。不过,与其他基于 ssh 的集群工具一样,当您尝试打开太多并发 ssh 连接时,您仍然会遇到问题。根据您的硬件,我的经验是您可能希望将并行度保持在 20-30 个同时 ssh 链接以下。

    基本上,有很多预制的解决方案,也有同样多的本土解决方案。环顾一下freshmeat.net 和谷歌,你会发现几个。或者自己动手;如果您只是在做 10-20 台机器,那么以可接受的方式解决这并不是一个特别困难的挑战...... :)

    • 0
  9. Bill Weiss
    2009-05-28T21:08:38+08:002009-05-28T21:08:38+08:00

    我使用 cfengine 来管理大约 150 台 Linux 机器。我每周必须登录任何给定的机器少于一次,其余的由 cfengine 完成。添加用户、删除用户、安装包等。

    • 0

相关问题

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 从 2003 年迁移到 2008 年 Microsoft 群集技术

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve