Linux 中的大规模管理

Linux 中的大规模管理

我很好奇,在管理企业服务器方面,Linux 是否有类似 PowerShell 的功能?例如,大规模检索服务器信息并进行更改。我知道 Posh 正在进入 Linux 领域,但我不确定它能为 Linux 带来多少功能。此外,Linux 能否以对象等形式以更结构化的方式返回数据?

答案1

PowerShell 只是一种脚本语言。它本身并不比任何其他脚本语言或工具更强大或更有用。

恕我直言,您误解了该工具的功能与单个管理域(例如 Active Directory)所提供的便利性和功能。

但是,Linux 系统也可以集成到单个管理域中,甚至在 AD 中,但也有(开源)替代方案。而且 Linux 提供了工具来有效地使用此类管理域进行大规模系统管理。

https://en.wikipedia.org/wiki/List_of_systems_management_systems

https://en.wikipedia.org/wiki/Comparison_of_open-source_configuration_management_software

https://en.wikipedia.org/wiki/System_Security_Services_Daemon

https://github.com/puppetlabs/facter

答案2

为了批量管理 Linux 服务器,我个人使用 pssh(并行 ssh)以及配置管理 (CM) 工具(如 puppet/ansible/chef)来批量管理机器。CM 工具有点像清单(这个文件应该在这里,那个程序应该一直运行,等等),而并行 ssh 就像运行单个 bash 命令一样,只不过是同时在大量机器上运行。可能还有很多其他工具可以做同样的事情,使用 Linux 通常有很多好的方法可以做任何事情(除了从命令行读取 html 电子邮件)。

虽然 bash 和 linux 用户空间工具没有对象的概念,但它们的文本和数据处理能力非常出色,而且几乎没有大小限制。此外,几乎所有命令行可用的内容都设计为可用于 bash 脚本。最终结果是非常强大的。

答案3

我用Ansible并且喜欢它。一开始真正吸引我的是ansible_事实。一个简单的剧本将返回有关给定系统的大量信息。早些时候,我只是保存输出并对其进行 grep 以找到key:value我想要的对。可能有更好的方法来做到这一点。

在最简单的配置示例中,您要保留要在其上运行 Ansible 的主机的“清单”。它类似于:

[my_hosts]
host1.mydomain.com
host2.mydomain.com
...

然后,您可以运行 Ansible“剧本” my_hosts,它将命中您在该块中配置的每个主机。剧本只是一个 YAML 配置,其中包含 Ansible 可以理解的命令、变量和格式。它不是 shell 脚本。它是一种告诉 Ansible 在主机上做什么的“方法”。我花了一段时间才理解它。

再次,为了简单起见,您可以制作一个运行 shell 命令的剧本,并在每台主机上运行该剧本。这是我经常使用的“正常运行时间”剧本。

---
- hosts: all
  gather_facts: false

  tasks:
    - name: uptime for host
      shell: uptime
      register: output

    - debug: var=output.stdout_lines

    # print a formatted line for grep/sed mining
    - debug: msg="grepme {{ inventory_hostname }}:{{ output.stdout_lines}}"

事情会变得比这复杂得多,但一开始会让人望而生畏。仅使用 shell 命令保持简单可能会让您感到困惑,但一旦您超越了简单的事情,您就应该研究更多“Ansibly”的方式来做更复杂、更难处理的事情,但它们确实有回报。

相关内容