程序员如何管理多台(地理位置分散的)Linux 机器?

程序员如何管理多台(地理位置分散的)Linux 机器?

我不是管理员,但我必须管理大约 10 台 Linux 服务器。这些服务器遍布世界各地,一些用作生产服务器,另一些用作暂存或开发服务器。

目前这些服务器没有集中管理。如果我必须创建用户,我必须在所有机器上手动创建,我必须手动将他们添加到组中(并重新阅读手册页以了解如何操作),编辑 sudoers 文件等。

所有这些机器都运行我们定制的软件,所以我需要一种方法来监控这些进程(可以简单到反复执行“ps -ef”以确保它已启动)。

我见过一些集中管理机器的软件,例如 nagios,webmin,redhat 的 spacewalk,ubuntu 的 Landscape 和许多变体。

  • 我更喜欢免费软件,但如果软件易于配置/管理,我愿意支付少量费用(适合两到三个人启动)
  • 看起来进程/机器监控(nagios)通常与管理用户(webmin)分开,这与包管理(landscape/spacewalk)仍然不同......是的?
  • 现在云计算在小型商店中越来越流行(其中许多由开发人员运营,没有管理员),难道没有更简单(更好看)的工具来轻松管理多台机器(虚拟或真实)吗?
  • 同样,由于云计算,许多中间件供应商都包含基于 REST 的接口——是否有工具可以让我从单个“仪表板”使用这些接口?

答案1

你要木偶. 系统自动化万岁。从程序员的角度来看,Puppet 的另一个好处是,您可以有效地编写代码来管理机器,并且更多的编程最佳实践(如修订控制)可以自然地映射到 Puppet 的工作方式。

答案2

查看网页管理一个不错的 Web 驱动远程管理界面。它有许多监控实用程序的模块插件(如心跳,以及其他多服务器监控工具)。您还可以将任意数量的运行 webmin 的服务器链接到一个面板中,以便将所有服务器监控集中在一个地方。

对于用户,您可能希望设置类似 OpenLDAP 或 Samba 域的东西,而不是将用户从一台机器复制到另一台机器。OpenLDAP 可能很麻烦,但没有什么比尝试在多台机器之间同步用户更麻烦的了。

相关内容