Linux 批量/远程管理

mjh*_*nig 11 linux remote-management administration deployment

除了我们的内部 IT 基础设施,我们还有大约 500 台 Linux 机器托管我们为在线世界提供的服务。它们被分组在一堆集群中,如数据库 An、产品 An、NFS、Backoffice 等。此外,它们由外部供应商根据我们的规范和要求进行管理。

然而,我们在(网络)软件开发、推出和部署过程中面临很多麻烦——特别是因为开发和登台环境与实时系统几乎没有任何共同之处(我省略了讨厌的细节......) .

因此,我尝试创建虚拟机,尽可能精确地复制各种实时系统,并准备将它们连接到例如开发数据库而不是对开发人员透明的“真实”数据库(它们不是root)。这很好用,但是...

我想知道如何远程批量管理这些系统?是否有一些我不知道的软件系列?或者,至少,一些应该熟悉的技术或原则?

我们将为每个开发人员提供一堆本地运行的图像(VirtualBox)。质量保证部 将获得虚拟集群(XEN 或 Hyper-V)。如果我需要提供一个额外的服务器模块,重新路由一个新的数据库连接,或者只是想更新包管理器提供的所有内容......我怎么可能在不被强制登录到每个系统和/或请我的同事下载并运行一些夹具脚本?

我相信有很多解决方案。嗯,不知何故,我太愚蠢了,无法在搜索引擎中输入正确的关键字……或者这个问题是不是像听起来一样微不足道?

作为记录:

  • 几乎所有系统都在运行 Debian GNU/Linux 6.x “squeeze”
  • 没有开发人员被迫在他/她的工作站上使用特定的操作系统
  • 预算有限,当然,但也不能太少买专有软件
  • 首选涉及我们上述提供商的解决方案

Ulr*_*gel 15

这取决于您究竟需要什么以及您正在寻找什么。但总的来说,“配置管理”存在多种解决方案,例如:

  1. 木偶
  2. 厨师
  3. 引擎
  4. 能听懂的

等等。我个人会推荐 puppet,因为它有一个很大的社区和很多外部提供的食谱。这允许您自动配置和管理系统。如果您将其与自己的存储库和自动更新相结合,例如unattended-upgrades您可以自动更新系统。

另一种解决方案是提供您自己的软件包,例如company-base等,它会自动依赖于必要的软件并可以自动配置您的系统。

您还应该研究自动化部署(准系统和虚拟化)。如果您将其与配置管理或您自己的存储库相结合,您可以轻松地自动化和重新安装您的系统。如果你想开始使用自动化的安装看看theforman支持libvirt的以及裸露的骨头安装和集成木偶支持。如果您想自己做,您可以查看kickstart (redhat 等)或“预置”以自动配置您的系统。对于 Debian,您还可以使用类似debootstrap或名为grml-debootstrap的包装器来支持虚拟化映像。

为了帮助为您的开发人员提供 VirtualBox 映像,请查看vagrant,它允许您使用 VirtualBox 支持厨师、puppet 和 shell 脚本来自动创建虚拟化系统,以自定义您的虚拟环境。

如果您想使用现有提供商的解决方案,您应该询问他们如何管理您的系统,但这可能是某种配置管理。如果您可以访问配置服务器,则可以在您的系统上运行他们的代理。

对于谷歌的关键字看看devopsconfiguration managementit automationserver orchestration

简而言之,尽可能地自动化,甚至不要考虑手动操作。

  • @Arcege 我只是赞成您的评论,脚本是必要的,您不必一次转换整个基础架构。最重要的部分是使事情自动化并使其可重复。但是puppet 和chef 的描述性质有一些独特的方面,例如您可以使用`cucumber-puppet` 测试和验证puppet 类。当然,您可以重用现有组件开发/发展自己的框架,但听起来 OP 目前没有任何东西,如果您从头开始,我认为最好使用现有框架。 (3认同)
  • 自己做事并没有错,尤其是在可用工具不符合目的的情况下。像 Puppet 这样的系统在很大程度上是系统管理工具,而不是配置管理本身。我使用的大部分系统甚至无法从中央服务器访问,而是从用户的笔记本电脑通过(所有事物)vpn 访问 - 三年来一直试图改变这一点。我们的 IT 部门是按地区划分的,因为每个地区都无法正常访问另一个地区。在某些情况下,需要自制脚本。这也是创新的起点。 (2认同)