使用 Puppet Lumogon 让你的容器透明化

随着开发和 IT 部门寻求更快地测试和部署软件或扩展其环境的方法,容器已成为首选解决方案。借助 Docker 和类似工具,您可以启动快速、轻量级且一致的开发和生产容器化平台。

容器的优点和致命弱点在于它们通常只是黑盒子。如果您运行 Ubuntu 或 CentOS 容器,它就能正常工作。如果您使用 :latest 标志运行它们,您将获得最新版本——无论那是什么。这对于开发或快速测试可能还可以,但不适用于生产环境。对于生产环境,您需要具体信息来确保容器是最新的,它们正在运行您需要的服务(而不是您不需要的任何服务),并且它们是安全的。

借助 Puppet 的新 Lumogon,您可以克服容器的缺点。它快速收集关于主机上运行的所有容器内部详细数据,并在 Lumogon 网站上以 JSON 或其他形式呈现结果。Lumogon 不是试图从 Dockerfiles、CI/CD 作业、UAT 或源代码控制文档中收集分散的信息,而是将信息收集到单个集中的报告中。

它通过使用 Lumogon 的开源检查器工具从 Docker API 和每个运行容器的命名空间中收集元数据来工作。要使其运行,您只需执行一个简单的 Docker run 命令


$ sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock
puppet/lumogon scan

在此示例中,Docker 拉取 puppet/lumogon 镜像并在您的主机上运行扫描。如果您运行了 NGINX 或 CentOS 容器,Lumogon 将检测到它们并返回有关主机(包括内核版本和平台)和已安装软件包的详细信息。它还将报告容器,为您提供大量关于每个容器内部运行情况的信息——甚至是您在 Dockerfiles 中定义的标签。

Lumogon 以 JSON 格式输出报告,可以解析并管道传输到各种分析工具中。或者,如果您想省去处理原始 JSON 的麻烦,Lumogon 将扫描您的容器主机并将数据发送到 Lumogon 的 Web 应用程序,该应用程序的 URL 对于您的扫描是唯一的。

可以使用以下 Docker 命令运行 Lumogon Web 报告


$ sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock
puppet/lumogon report

这可能需要一些时间,具体取决于您运行的容器数量,但是当 Lumogon 完成扫描后,它会提供 URL,您可以在该 URL 中找到它刚刚创建的报告,例如:https://reporter.app.lumogon.com/r5cI0bIyF4fRGzp9REyqUvBLORIKSM4bIp6slz0uDmI=

如果您更高级并使用 jq,这个类似于 sed 和 awk 的命令行工具,可让您操作 JSON 文本,则可以将 Lumogon 输出聚焦到更精细的位。在本例中,我在我的主机上运行 Lumogon,查找有关客户端版本的信息


$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock puppet/lumogon
scan | jq -r .client_version

通过将 Lumogon 的输出管道传输到 jq,我获得了此 client_version 信息


{
  "BuildSHA": "a7f2943697f83ba74514a0169890ecf8ad1cfacb",
  "BuildTime": "2017-05-11 08:24:20 UTC",
  "BuildVersion": "development"
}

您可以想象其他使用 Lumogon 报告数据的方式,例如编写自动化 CI 测试,以确保镜像不包含漏洞。如果您有其他监控应用程序,您也可以将 Lumogon 数据用于它们。您可以将此信息管道传输到其他操作中,或者只是将其用作可以在您的组织内共享的常规调查和调试的一部分,从而获得更多实验性。

如果您经常使用 Dockerfiles 构建容器镜像,您可能已经习惯于添加标签。您可以根据需要包含任意数量的标签,它们充当标记,提供可以标准化和共享的情报。Lumogon 可以报告这些标签,并在主机和容器数据的旁边为您提供信息。

Lumogon 可以在任何可以运行 Docker 的主机上运行,并且可以报告任何正在运行的 Docker 风格的容器。

无论您现在运行的是哪种开发或生产环境,您都必然会考虑使用容器作为创建快速、一致的机器的方式,以便在其上运行您的应用程序和服务。Lumogon 可以帮助消除风险,并为您提供可以真正改进您完成工作方式的运营智能。

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

加载 Disqus 评论