切断线索:从 Puppet Enterprise 迁移到 Ansible Tower。 第1部分

通过从 Puppet Enterprise 迁移到 Ansible Tower,国家环境卫星数据信息服务 (NESDIS) 将 Red Hat Enterprise Linux (RHEL) 的配置管理成本降低了 35%。 在这段“我们是如何做到的”视频中,系统工程师 Michael Rau 解释了此次迁移的案例,分享了从一种 SCM 迁移到另一种 SCM 的有用技巧和经验教训。

通过该视频您将了解到:

  • 如何向管理层证明从 Puppet Enterprise 切换到 Ansible Tower 的可行性;
  • 使用什么策略来使过渡尽可能顺利;
  • 将 PE 清单转码为 Ansible Playbook 的技巧;
  • Ansible Tower 最佳安装建议。

切断线索:从 Puppet Enterprise 迁移到 Ansible Tower。 第1部分

大家好,我叫 Michael Rau,是 ActioNet 的高级系统工程师,为国家海洋和大气管理局 (NOAA) NESDIS 服务工作。 今天我们将讨论字符串修剪 - 我自己从 Puppet Enterprise 迁移到 Ansible Tower 的经历。 本次演讲的主题是“看看我今年早些时候完成这一转变后留下的伤疤”。 我想分享我在这个过程中学到的东西。 因此,当你承担这样的事情时,根据我的经验,你可以在没有任何额外工作的情况下完成过渡。

您可以在 Ansible Fest 的每次演示的开头看到与此类似的幻灯片。 这张幻灯片概述了我公司的自动化历史。 我对此并不陌生,因为我自 2007 年以来一直在使用 Puppet/Puppet Enterprise。 我于 2016 年开始使用 Ansible,和该产品的许多其他用户一样,我被使用命令行和简单脚本(剧本)的“技巧”的可能性所吸引。 2017 年底,我向管理层询问了迁移到 Ansible Tower 的充分理由。 稍后我将告诉您促使我采取这一步的原因。 在得到管理层的同意后,又花了几个月的时间来完成这个计划,我在今年XNUMX-XNUMX月份进行了过渡。 因此,我们完全放弃了 Puppet,转而使用 Ansible,这是一件很棒的事情。

切断线索:从 Puppet Enterprise 迁移到 Ansible Tower。 第1部分

Ansible 最吸引我的是编写和使用角色和剧本的能力。 角色非常适合创建不同但相关的任务,并将与这些任务相关的所有数据放在一处。 Playbook 是一种 YAML 语法脚本文件,描述一个或多个主机的操作。 我向用户(主要是软件开发人员)介绍这些功能。 Ansible Tower 让您能够说:“不,您没有 shell 访问权限,但我让您能够运行所有 Tower 进程并在需要时重新启动服务。” 我会告诉你我们的工作环境和使用的设备。

切断线索:从 Puppet Enterprise 迁移到 Ansible Tower。 第1部分

这是一个联邦 LAN,通过云 MPLS 连接的 7 个物理站点、140 台 RHEL 服务器,其中 99% 是虚拟服务器(vSphere)、SuperMicro 硬件、NexentaStore 网络存储、一组 Cisco、Arista 和 Cumulus 交换机以及 Fortinet UTM 统一威胁管理每个站点上的工具。

联邦网络意味着我必须使用法律规定的所有信息安全措施。 您应该记住,Puppet Enterprise 不支持我们使用的大多数硬件。 我们被迫使用预算硬件,因为政府机构在为这项费用项目提供资金方面存在问题。 这就是为什么我们购买 SuperMicro 硬件并用单独的零件组装我们的设备,其维护由政府合同保证。 我们使用 Linux,这是切换到 Ansible 的重要原因之一。

我们与 Puppet 的历史如下。

切断线索:从 Puppet Enterprise 迁移到 Ansible Tower。 第1部分

2007 年,我们有一个 20-25 个节点的小型网络,在其中部署了 Puppet。 基本上,这些节点只是 RedHat“盒子”。 2010 年,我们开始在 45 个节点上使用 Puppet Dashboard Web 界面。 随着网络的不断扩展,我们于 2014 年迁移到 PE 3.3,通过对 75 个节点的清单重写进行了彻底的过渡。 这是必须要做的,因为 Puppet 喜欢改变游戏规则,而在这种情况下,他们完全改变了语言。 一年后,当对 Puppet Enterprise 版本 3 的支持结束时,我们被迫迁移到 PE 2015.2。 我们必须为新服务器再次重写清单并购买保留 100 个节点的许可证,尽管当时我们只有 85 个节点。

仅仅两年过去了,我们再次需要做大量的工作来迁移到新版本PE 2。 我们购买了 2016.4 个节点的许可证,但实际上只有 300 个节点。我们再次必须对清单进行重大更改,因为新版本的语言与 130 版本的语言具有不同的语法。 结果,我们的SCM从SVN版本控制切换到Bitbucket(Git)。 这就是我们与 Puppet 的“关系”。

因此,我必须使用以下论点向管理层解释为什么我们需要转移到不同的 SCM。 首先是服务价格高。 我与 RedHat 的人员交谈,他们说使用 Ansible Tower 运行 300 个节点网络的成本是 Puppet Enterprise 成本的一半。 如果您还购买 Ansible Engine,成本将大致相同,但您将获得比 PE 更多的功能。 由于我们是一家由联邦预算资助的国有公司,因此这是一个非常有力的论点。

切断线索:从 Puppet Enterprise 迁移到 Ansible Tower。 第1部分

第二个论点是多功能性。 Puppet 仅支持具有 Puppet 代理的硬件。 这意味着所有交换机上都必须安装代理,并且必须是最新版本。 如果您的某些交换机支持一个版本,而另一些则支持另一个版本,则需要在它们上安装新版本的 PE 代理,以便它们都可以在同一个 SCM 系统中工作。

Ansible Tower 系统的工作方式有所不同,因为它没有任何代理,但它具有支持 Cisco 交换机和所有其他交换机的模块。 该SCM支持Qubes OS、Linux和4.NET UTM。 Ansible Tower 还支持基于 Illumos 内核(一种基于 Unix 的开源操作系统)的 NexentaStore 网络存储控制器。 虽然支持很少,但 Ansible Tower 仍然做到了。

第三个论点对我和我们的政府来说都非常重要,那就是易用性。 我花了 10 年的时间来掌握 Puppet 模块和清单代码,但我在一周内就学会了 Ansible,因为这个 SCM 更容易使用。 当然,如果您运行可执行文件,除非您不必要地这样做,否则智能且响应迅速的处理程序将使用它们。 基于 YAML 的 playbook 易于学习且易于使用。 那些以前从未听说过 YAML 的人可以简单地阅读脚本并轻松理解它是如何工作的。

老实说,Puppet 让开发人员的工作变得更加困难,因为它基于使用 Puppet Master。 它是唯一允许与 Puppet 代理通信的机器。 如果您对清单进行了任何更改并想要测试您的代码,则必须重写 Puppet Master 的代码,即配置 Puppet Master /etc/hosts 文件以连接所有客户端并启动 Puppet Server 服务。 只有这样你才能在一台主机上测试网络设备的运行情况。 这是一个相当痛苦的过程。
Ansible 中的一切都变得更加简单。 您所需要做的就是为可以通过 SSH 与被测主机进行通信的机器开发代码。 这更容易使用。

Ansible Tower 的下一个重大优势是能够利用您现有的支持系统并维护现有的硬件配置。 此 SCM 使用有关您的基础架构和硬件、虚拟机、服务器等的所有可用信息,无需任何其他步骤。 它可以与您的 RH 卫星服务器(如果您有的话)进行通信,并为您提供 Puppet 永远无法实现的集成。

还有一个重要的事情就是细节的把控。 您知道 Puppet 是一个模块化系统,它是一个客户端-服务器应用程序,因此您必须在一个长清单中定义所有计算机的现有方面。 在这种情况下,必须每半小时测试系统每个单独元素的状态 - 这是默认周期。 这就是 Puppet 的工作原理。

Tower 可以帮助您避免这种情况。 您可以不受限制地在各种设备上运行各种进程;您可以执行基本工作、运行其他重要进程、设置安全系统以及使用数据库。 在 Puppet Enterprise 中你可以做所有困难的事情。 因此,如果您在一台主机上进行了配置,则更改需要一段时间才能在其余主机上生效。 在 Ansible 中,所有更改同时生效。

最后,我们来看一下安全模块。 Ansible Tower 的实现非常简单,非常精确且细心。 您可以授予用户对特定服务或特定主机的访问权限。 我对习惯在 Windows 上工作的员工这样做,限制他们对 Linux shell 的访问。 我确保他们有权访问 Tower,以便他们只能完成工作并仅运行与他们相关的服务。

切断线索:从 Puppet Enterprise 迁移到 Ansible Tower。 第1部分

让我们看看您需要提前做哪些事情,以便更轻松地过渡到 Ansible Tower。 首先,你需要准备好你的设备。 如果基础设施的某些元素尚未存在于数据库中,则需要将它们添加到数据库中。 有些系统不会改变其特性,因此不在 Puppet 数据库中,但如果您在迁移到 Tower 之前不将它们添加到其中,您将失去许多优势。 这可能是一个“脏”的初步数据库,但它应该包含有关您拥有的所有设备的信息。 因此,您应该编写一个动态硬件脚本,自动将所有基础设施更改推送到数据库中,然后 Ansible 将知道新系统上应该存在哪些主机。 您不需要告诉该 SCM 您添加了哪些主机以及哪些主机不再存在,因为它会自动知道所有这些。 数据库中的数据越多,Ansible 就越有用和灵活。 它的工作原理就好像它只是从数据库中读取硬件状态条形码一样。

花一些时间熟悉 Ansible 中的命令行。 运行一些自定义命令来测试硬件脚本,编写并运行一些简单但有用的剧本脚本,在适当的情况下使用 Jinja2 模板。 尝试使用常见的硬件配置为复杂的多步骤过程编写角色和脚本。 玩这些东西,测试它是如何工作的。 通过这种方式,您将学习如何使用 Tower 中使用的库创建工具。 我已经说过,我花了大约3个月的时间来准备过渡。 我认为根据我的经验,您将能够更快地做到这一点。 不要认为这时间是浪费,因为稍后您将体验到所做工作的所有好处。

接下来,您需要确定您对 Ansible Tower 的期望,该系统到底应该为您做什么。

切断线索:从 Puppet Enterprise 迁移到 Ansible Tower。 第1部分

您需要将系统部署在裸硬件、裸虚拟机上吗? 或者您想保持现有设备的原始运行条件和设置? 对于上市公司来说,这是一个非常重要的方面,因此您需要确保能够在现有配置上迁移和部署 Ansible。 确定您想要自动化的日常管理流程。 了解您是否需要在新系统上部署特定的应用程序和服务。 列出你想做的事情并确定优先顺序。

然后开始编写脚本代码和角色来实现您计划完成的任务。 将它们组合成项目,即相关剧本的逻辑集合。 每个项目将属于一个单独的 Git 存储库或不同的存储库,具体取决于您使用的代码管理器。 您可以通过手动将 playbook 脚本和 playbook 目录放置在 Tower 服务器上的项目基本路径中,或者将 playbook 放置在 Tower 支持的任何源代码管理 (SCM) 系统(包括 Git、Subversion、Mercurial 和 Red Hat)中来管理 playbook 脚本和 playbook 目录见解。 在一个项目中,您可以根据需要放置任意数量的脚本。 例如,我创建了一个基本项目,其中放置了一个用于 RedHat 核心元素的脚本、一个用于 Linux 核心的脚本以及用于其余基线的脚本。 因此,在一个项目中,有多种角色和场景是通过一个 Git 存储库进行管理的。

通过命令行运行所有这些东西是测试其功能的好方法。 这将为您安装 Tower 做好准备。

让我们来谈谈对 Puppet 清单进行转码,因为我在这方面花了很多时间,直到弄清楚实际需要做什么。

切断线索:从 Puppet Enterprise 迁移到 Ansible Tower。 第1部分

正如我之前所说,Puppet 将所有设置和硬件选项存储在一个长清单中,并且该清单存储了该 SCM 应该执行的所有操作。 进行转换时,您不需要将所有任务都塞进一个列表中;相反,请考虑新系统的结构:角色、脚本、标签、组以及应该放在哪里的内容。 一些自治网络元素应该被分组为可以为其创建脚本的组。 涉及大量资源(包括独立类)的更复杂的基础设施元素可以组合成角色。 在迁移之前,您需要对此做出决定。 如果您要创建不适合在一个屏幕上显示的大型角色或场景,您应该使用标签来捕获基础设施的特定部分。

18:00

切断线索:从 Puppet Enterprise 迁移到 Ansible Tower。 第2部分

一些广告🙂

感谢您与我们在一起。 你喜欢我们的文章吗? 想看更多有趣的内容? 通过下订单或推荐给朋友来支持我们, 面向开发人员的云 VPS,4.99 美元起, 我们为您发明的入门级服务器的独特模拟: VPS (KVM) E5-2697 v3(6 核)10​​4GB DDR480 1GB SSD 19Gbps XNUMX 美元或如何共享服务器的全部真相? (适用于 RAID1 和 RAID10,最多 24 个内核和最多 40GB DDR4)。

Dell R730xd 在阿姆斯特丹的 Equinix Tier IV 数据中心便宜 2 倍? 只有这里 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 电视低至 199 美元 在荷兰! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 美元起! 阅读 如何建设基础设施公司同级使用价值730欧元的Dell R5xd E2650-4 v9000服务器一分钱?

来源: habr.com

添加评论