Puppet 云发现:了解云中运行的内容

自动化的承诺一直是在所有系统上管理各种任务的能力,无论它们是在您自己的数据中心还是在云中的某个地方。但是为了自动化,您需要知道您拥有什么,而这在当今变得越来越困难。

我们都遇到过孤立的云虚拟机和实例,也许是开发人员为了快速测试而启动的,作为影子 IT 创建的,或者仅仅是在最新产品发布的压力下被遗忘的。无论它们被创建和遗忘的原因是什么,这些实例都会给您的时间、安全和预算带来相当多的风险。毕竟,云实例的计量表几乎总是运行的,无论是否孤立。

借助 AWS、Google Compute Engine、Azure 和其他服务,启动新实例比以往任何时候都容易,而且同样容易跟踪不到它们。如果您曾经完全了解它们,也很容易跟踪不到它们上面运行的内容。自动化这些服务和软件包会有所帮助,但很难自动化您不知道拥有的东西。

Puppet 新的 Cloud Discovery 旨在通过清晰地展示所有 AWS 实例上运行的内容(即使是您不知道拥有的实例)来改变这种状况。它超越了云基础设施和实例,向您展示它们的工作负载以及从软件包和防火墙规则到用户和操作系统变体的所有内容。

其理念是您了解得越多,就越能使用 Puppet 等自动化工具对其进行管理。但是,如果您还没有开始使用 Puppet,请不要担心。您不需要它来使用 Cloud Discovery。事实上,您无需安装任何东西。

首先,创建一个 Cloud Discovery 帐户并添加您的 AWS EC2 凭据(对于您想要的任意多个帐户),该工具会通过云服务进行身份验证。在其第一个迭代版本中,Cloud Discovery 将在第三季度推出,它将与 Amazon Web Services 配合使用,但 Puppet 计划在此之后添加对 Google、Azure、VMware 和其他服务的支持。

连接后,Cloud Discovery 使用 AWS API 收集有关您的实例的信息,包括每个私有和公共主机名、启动时间和列出的安全组。它会在您的云帐户中快速且实时地执行此初始扫描。

从结果列表中,您可以选择要深度扫描的实例——可能只是特定 IP 范围内的实例,或者只是特定 AWS 区域(如 west-2)中的实例。发布后,Puppet 的工作人员旨在根据 AWS API 提供的数据点为 Cloud Discovery 用户提供多种选择。

扫描开始后,Cloud Discovery 会在每个 VM 上临时放置一个小的二进制文件,并快速收集有关每个 VM 的广泛特定详细信息。主仪表板显示用户数量(和用户变体)、组、EC2 实例类型、操作系统平台、服务、软件包等。扫描完成后,它会删除小的二进制文件,并且不留痕迹(可能 SSH 会话日志除外)。

图 1. 扫描您的 AWS 实例后,Cloud Discovery 仪表板的早期视图。

从结果中,您可以深入挖掘每个数据类别,以发现更多数据,包括您已安装的软件包的版本(或多个版本)。如果您在十个不同的实例上运行着两个不同版本的 openssh-server,您将能够立即看到这一点和其他软件包变体。

与此同时,Cloud Discovery 返回大量元数据——包括内存、存储和 IP——并提供每个实例资源的 Puppet 节点图视图,其中实例本身显示为中心,资源和服务显示为辐条。这是一种很好地了解实例在做什么的方式,只需 glance 一眼。

由于 Cloud Discovery 不仅仅关注 AWS 实例的虚拟硬件,因此它可以揭示不一致之处。这些不一致之处可能是从过时的 openssl 软件包版本到过时的防火墙规则的任何内容。它甚至会告诉您应用程序正在运行的端口,因此您可能会发现自己在某些实例上的 80 和 8080 端口上都运行着 httpd——这可能是您想要修复的事情。

当然,您最大的发现也许是那些您从未知道存在的孤立实例,它们正在快速而随意地处理您的安全规则或默默地增加云费用。

如果您不对这些信息做任何其他事情,Cloud Discovery 可以通过引导您找到未使用的实例(您可以终止这些实例)来为您省钱。但真正的目标是利用 Cloud Discovery 为您提供的优势,从而在自动化您在云中运行的所有机器方面取得重大进展。现在您知道自己拥有什么,就可以更好地管理它,并且当您在实例上部署 Puppet master 和 agent 时,您可以更好地强制执行从用户和组访问权限和防火墙设置到软件包版本控制和运行服务的所有内容。

资源

Puppet Cloud Discovery: https://puppet.com/product/cloud-discovery

使用 Puppet 进行云规模自动化: https://puppet.com/resources/ebook/geek-guide-cloud-scale-automation-puppet

John Tonello 是 SUSE 的全球技术营销经理,他在那里专门研究软件定义的基础设施。自从 20 多年前从软盘构建了他的第一个 Slackware 系统以来,他一直是 Linux 用户和爱好者。

加载 Disqus 评论