同时管理几个 Linux 服务器

同时管理几个 Linux 服务器

我有一个小集群,由几个 Linux 节点组成。有一个共享的 NFS,我在所有节点上都有相同的用户帐户和共享的 SSH 密钥,但除此之外,每个节点都有自己的文件系统和配置。

我希望能够从中心节点控制所有节点的配置。典型的配置主要由配置文件组成,既在用户目录中,也在/etc或中/opt。有时我也需要在所有节点上安装相同的软件包或运行其他 shell 命令。

这是一个小型集群,几乎不需要企业级自动化系统或其他复杂安装。您是否尝试过并测试过其他方法,最好是轻量级和开源的?或者甚至直接基于 BASH/SSH 黑客?谢谢。

答案1

我强烈推荐 Saltstack。它灵活、可扩展、轻量且免费。

http://www.saltstack.com

答案2

Ansible如果您使用 Homebrew 从 Linux 或 Mac OS X 控制它们,应该可以解决问题。控制机器不支持 Windows。Linux 节点需要有 SSH 和 Python,但由于大多数 Linux 发行版默认安装 Python,因此您可能已经满足要求。您需要做的就是安装在 master 上使用 ansible,这应该很容易。

观看 23 分钟快速入门视频以获得更好的想法。我还建议看看临时命令简介文档中的部分内容:

  • 在组中的所有服务器(在本例中为 atlanta)上运行该命令,以 10 个并行分叉运行:

    $ ansible atlanta -a "/sbin/reboot" -f 10
    
  • 确保软件包已安装,但不要更新它:

    $ ansible webservers -m yum -a "name=acme state=installed"
    
  • 要将文件直接传输到多个不同的服务器:

    $ ansible atlanta -m copy -a "src=/etc/hosts dest=/tmp/hosts"
    
  • 确保所有网络服务器上都启动了服务:

    $ ansible webservers -m service -a "name=httpd state=started"
    

也有一些例子剧本。

答案3

要运行命令,您可以使用可以在多个 SSH 服务器上运行命令的工具

其中包括:

  1. 密码
  2. 集群 SSH

Debian 和 Ubuntu 均可用。

答案4

尝试预计脚本。它们是在多台机器上自动运行相同任务的绝佳方式。

使用 expect 脚本,您无需手动登录每台机器并一遍又一遍地执行相同的任务。我用它来做诸如在所有机器上更改用户密码、在每台机器上运行检查脚本等事情。

相关内容