使用 Puppet 轻松部署 OpenStack

尚无读者喜欢此内容。
Can government agencies be innovative?

Opensource.com

当涉及到管理一定规模的基础设施部署时,即使是忍者级的系统管理员也无法在没有帮助的情况下完成所有工作。事实上,有人可能会认为,了解何时以及如何使用 IT 自动化工具来管理基础设施是获得管理员黑带的先决条件。Puppet Puppet 应运而生。 

Puppet 是一个开源框架,用于模板化重复性任务,以节省时间并使其易于记录、修改和复制。它背后有一家公司提供企业支持,同时仍在公开进行开发。

Puppet 获得广泛采用的一个领域是部署 OpenStack。 我与 Puppet Labs 的 OpenStack 高级软件工程师 Chris Hoge 进行了交谈,以了解一些关于 Puppet 的信息,以及如何使用它来自动化 OpenStack 安装和管理流程。

您是如何开始从事 OpenStack 和 Puppet 工作的?

我来自俄勒冈大学,在那里我管理着一个研究 OpenStack 安装,它是使用 Puppet 部署的。那是我在 Essex [版本] 时代开始接触 OpenStack 的地方。我是生产 Folsom 安装的管理员,然后我升级到 Grizzly。当大学的那个项目资金耗尽时,对我来说这是一个很好的机会,可以来到 Puppet Labs 继续从事网络工作。我从去年六月来到这里,一直在接管 Puppet OpenStack 模块以及围绕这些模块发展起来的开发者社区的工作。

请向我们简单介绍一下 Puppet 作为一个软件工具。

因此,Puppet 是一个用于配置任何事物的工具。它是我们称之为 DevOps 运动的一部分。您可以使用声明性语言指定您希望实例的外观,这种语言让您可以尽可能以与平台无关的方式指定您希望此实例的外观。

Puppet Labs 如何与开源社区合作?

Puppet Labs 遵循成熟的模式,即在开源社区公开进行我们产品的开发。因此,我们所有的主要产品——Puppet、MCollective、Hiera、Facter——所有这些都是公开开发的,我们生产这些产品的开源版本。这对我们来说是一种在社区中获得高度可见性并获得大量关于项目应如何发展以及应朝哪个方向发展的反馈的方式。Puppet Enterprise 所做的是将所有这些开源项目捆绑在一起,使其更容易一起使用这些项目,但它也为您提供了一个支持渠道,以便您可以对 Puppet 及其所有相关工具进行大型机构部署,并确保您将获得专业和及时的支持。

Puppet 如何帮助 OpenStack 的部署和管理?

Puppet OpenStack 模块真正擅长的是 OpenStack 的部署。这是一个已经持续相当长一段时间的项目。我们已经经历了几个版本。在之前的香港 OpenStack 峰会上进行了一项调查,结果表明 Puppet OpenStack 模块是人们用来安装和管理其 OpenStack 安装的首选方式。这是因为有很多非常出色的工具都在这些模块的基础上构建。如果您看看像红帽和思科这样的团队所做的工作,他们正在使用这些模块并对其进行扩展。这些模块确实做了很多很棒的事情。它们实际上允许您管理您的基础设施。

这方面的一些例子包括能够管理 Keystone,租户、角色和用户都可以在 Puppet 代码中进行管理。我们有自定义管道和提供程序,允许您将用户和租户视为资源。Neutron 也是如此,您拥有网络和子网以及端口的这些抽象概念,所有这些都可以使用 Puppet 资源进行管理,以便当您启动 OpenStack 安装时,您已经可以完全定义可供租户使用的公共和私有网络。不仅在安装期间如此。您还可以添加和创建新的网络,并在需要时销毁这些网络。因此,最终它成为一个非常强大的工具,可以与软件定义网络 (SDN) 等事物集成,这对我来说非常有趣。

请详细介绍一下软件定义网络模块。

这是 Neutron 开发和 ML2 框架中真正令人兴奋的事情之一,您正在采用网络的概念,并尝试抽象出“我如何实现我的网络”——是通过硬件还是通过虚拟软件交换机?——并为您提供一个 API 层来与之交互。因此,当我们能够在 Neutron 已经提供给我们的接口之上构建各种类型的提供程序时,这真的令人兴奋。当您的网络由您正在使用的任何硬件供应商或您正在使用的任何软件实现提供支持时,您可以定义您希望您的网络的外观。您可以定义网络和子网,并使其可用并通过中心位置以相当简单的声明性语言进行管理。

您还有哪些其他模块可以与 OpenStack 配合使用?您是否为所有主要的 OpenStack 组件都提供了模块?

实际上,我们跟踪进入核心 OpenStack 发行版的每个项目,因此当然这意味着我们将拥有 Keystone、Nova、Glance、Swift、Neutron——您的主要 OpenStack 项目的模块。我们还有针对 Heat、Ceilometer、Tempest 的模块——您看到的这些较新的项目正在被拉入 OpenStack 生态系统。基本上,我们试图做的是,每次项目从孵化状态进入 [核心] OpenStack 时,我们都希望有一个模块到位,用于定位该服务的安装和管理。

您的发布计划如何与 OpenStack 本身的发布计划保持一致?

过去,我们通常落后于核心 OpenStack 项目发布几个月。我被赋予的任务之一,也是我一直在努力做的事情是加速发布周期。这意味着改进我们内部的测试结构,以便 Puppet Labs(负责管理这些模块的发布)可以加快我们匹配模块发布与 OpenStack 发布节奏的速度。我们已经将验证这些模块的时间从几周缩短到几个小时内就可以使用公共存储库验证模块。而这实际上是我现在正在做的事情,以便在我到达峰会时,我可以准备好 Puppet OpenStack Icehouse 稳定模块的完整版本。

听起来 Puppet 将成为下周 OpenStack 峰会的积极参与者?

是的。我们将在那里做很多事情。首先,我们有一个展位在那里,就像我们参加过多次峰会一样。我们还将进行一个 15 分钟的剧场演示。但今年还将有一些针对运营商和开发人员的新鲜事物。首先是将会有一个运维峰会,Puppet 将于 5 月 16 日星期五下午 3 点在那里亮相。

去年我们还试行了一个计划,即专门针对 Puppet OpenStack 的 Puppet OpenStack 设计峰会会议。这是我们自己组织的一个活动,我们获得了巨大的参与度。来自各地的许多开发人员最终都来参加了。我们制定了下一年的计划,并真正像对待传统的 OpenStack 设计峰会一样对待它。这变成了一个更大的计划,许多与 OpenStack 相关的开源项目都能够获得基金会预留的空间和时间,以便他们可以开会并规划自己的项目。Puppet OpenStack 开发者会议将于 5 月 13 日星期二下午 2:50 - 6:10 举行。 

除了更新 Icehouse 的模块外,您还在开发哪些其他新功能?

新的 Sahara 和 Trove 模块是我们非常感兴趣的工作方向。我个人也对扩展我们的类型和提供程序感兴趣,以便我们可以捕获更多我们可以在 OpenStack 集群中管理的资源,特别是能够直接从 Puppet 代码中从 Nova provision 机器。社区内对为 OpenStack 提供高可用性也抱有极大的兴趣,这将是我 Juno 周期内的首要任务之一。

您的社区是否参与了 Puppet OpenStack 项目?

当然!事实上,这是我们从 Puppet Labs 外部获得大量代码的事情之一。有如此多的不同组织在生产中使用这些模块,我们一直在跟踪它的走向,因此实际上我们几乎所有的贡献都来自 Puppet Labs 外部。这对我来说是另一件非常令人兴奋的事情。Puppet OpenStack 模块确实是一个广泛分布的开源项目。

这真的是灵丹妙药,不是吗?用一个很酷的想法开始一些事情,您的社区几乎会为您编写它?

是的,当然!我无法告诉您有多少次我对自己说,“我需要实现这个新功能”,然后感觉就像在我想到自己之后几分钟内,就收到了针对它的 pull request。看到这种情况真的很有趣。

我们可以在哪里了解更多信息?

我真的鼓励任何对模块感兴趣的人都来看看我们正在做的事情,无论是从运营商的角度还是开发人员的角度来看。我们将为 Icehouse 版本发布一个新的 Puppet Labs OpenStack 模块,这将为人们提供一个非常好的起点,让他们开始安装 OpenStack,同时也让他们了解如何使用和扩展模块以适应自己的环境。

我们正在 StackForge 上开发所有源代码,因此欢迎人们加入并做出贡献。我们还有一个 Puppet OpenStack 邮件列表,他们可以参与其中,并获得有关开发进展的更新。如果我们有任何紧急问题,他们也可以访问 Puppet OpenStack IRC 频道(Freenode 上的 #puppet-openstack)。

 

标签
User profile image.
Jason 是 Opensource.com 的工作人员和红帽员工,任职时间为 2013 年至 2022 年。此个人资料包含他在该期间与工作相关的文章。其他贡献可以在他的个人帐户中找到。

评论已关闭。

Creative Commons License本作品已根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.