在“DevOps”世界中,组织正在使用基础架构即代码(IAC)实施或构建流程。Ansible、Terraform和Puppet允许企业扩展和创建可重复的配置,以测试和执行程序以持续确保正确的结果。我们将更深入地研究这三者之间的差异。指导您选择最适合您需求的平台。这三个都是高级平台,用于部署具有高度复杂要求的可复制和重复应用程序。比较这些应用程序在配置管理、架构和编排方面的异同,并做出明智的决定。
十多年前引入的?基础设施即代码(IAC)的概念?是指管理和配置计算机数据中心的过程。这是一种管理数据中心服务器、网络基础设施和存储的策略。其目的是显着简化大规模管理和配置。
IAC允许通过机器可读的定义文件配置和管理计算机数据中心,而无需配置工具或物理硬件。简单来说,IAC将手动配置、构建指南、运行手册和相关过程视为代码。由软件读取,维护基础设施状态的代码。
IAC旨在解决配置漂移、系统不一致、人为错误和上下文丢失,解决了所有这些潜在的严重问题。这些过程过去需要相当长的时间;现代IAC工具使所有流程更快。它消除了手动配置步骤,并使它们具有可重复性和可扩展性。它可以更快地加载数百台服务器。它允许用户获得可预测的架构并自信地维护数据中心的配置或状态。
有多种IAC工具可供选择,其中三个主要示例是Ansible、Terraform和Puppet。他们都有自己独特的优势和劣势,我们将进一步探讨。
Terraform、Ansible和Puppet的简短背景
在我们开始比较这些工具之前,请参阅下面的简要说明:
Ansible和Terraform有一些关键的区别,但两者也有一些相似之处。当我们查看两个DevOps概念时,它们会有所不同:编排和配置管理,它们是工具的类型。Terraform是一个编排工具。Ansible主要是一个配置管理工具(CM);它们的表现不同,但确实有一些重叠,因为这些功能不是相互排斥的。针对各种用途和优势进行了优化,将这些工具用于各种情况。
编排工具?有一个目标:确保环境持续处于“理想状态”。Terraform就是为此而构建的,因为它存储了环境的状态,当某些东西不能正常运行时,它会在重新加载后自动计算并恢复系统。它非常适合需要恒定和不变状态的环境。'TerraformApply'用于有效解决所有异常。
配置管理工具不同;他们不会重置系统。相反,他们在本地修复问题。Puppet的设计可以在服务器上安装和管理软件。与Puppet一样,Ansible也可以配置每个动作和工具,并确保其正常运行而不会出现任何错误或损坏。CM工具用于修复问题,而不是完全更换系统。在这种情况下,Ansible有点混合,因为它可以同时执行编排和替换基础架构。Terraform使用更广泛。它被认为是卓越的产品,因为它具有先进的状态管理功能,而Ansible没有。
这里要知道的重要一点是这里的功能重叠。大多数CM工具可以在一定程度上进行配置,反之亦然,许多配置工具可以进行一些配置管理。现实情况是,不同的工具更适合某些类型的任务,因此这取决于您的服务器的要求。
DevOps工具?分为两类来定义其操作:“声明式”和“程序式”。由于存在重叠,并非每个工具都适合这种模具。Procedural定义了一个需要精确方向和程序的工具,您必须在代码中进行布局。声明式是指一种工具“声明”确切需要什么。它没有概述获得结果所需的过程。
在这种情况下,Terraform完全是声明性的。有一个定义的环境。如果该环境有任何改变,它会在下一个“TerraformApply”中得到纠正。简而言之,该工具会尝试达到系统管理员所描述的所需最终状态。Puppet也旨在以这种方式进行声明。
使用Terraform,您只需要描述所需的状态,Terraform就会自动计算出如何从一种状态进入下一种状态。
或者,在这种情况下,Ansible有点混合。它可以两者兼而有之。它执行实现过程式配置的临时命令,并使用大多数以声明式执行的模块。
如果您决定使用Ansible,请仔细阅读文档,以便了解它的作用并了解预期的行为。必须知道您是否需要添加或减少资源以获得正确的结果,或者您是否需要明确指出所需的资源。
自动化配置任何基础设施是自动化应用程序及其部署的整个运营生命周期的第一步。在云中,软件从VM、Docker容器或?裸机服务器运行。Terraform或Ansible都是配置此类系统的不错选择。Puppet是较旧的工具,因此我们将仔细研究用于管理多个服务器的较新的DevOps程序。
Terraform和Ansible以不同的方式处理配置过程,如下所述,但存在一些重叠。
Terraform现有的声明性模型中没有体现某些行为。当以下列方式使用Terraform时,此设置会增加大量的不确定性和复杂性:
当Terraform模型是计划的一部分时,它无法对供应商的操作进行建模。它需要协调比正常使用Terraform成功使用配置器所需的更多细节。
它需要额外的措施,例如授予对用户服务器的直接网络访问权限、安装必要的外部软件以及颁发Terraform凭据以进行登录。
Ansible可以可靠地配置最新的云平台、网络设备、裸机服务器、虚拟主机和管理程序。
完成引导后,Ansible允许单独的团队将节点连接到存储。它可以将它们添加到负载均衡器,或任何安全补丁或其他操作任务。这种设置使Ansible成为任何流程管道的完美连接工具。
它有助于自动将裸基础设施直接用于日常管理。使用Ansible进行配置,允许用户在配置管理、应用程序部署和编排中无缝地使用通用的、人类可读的自动化语言。
适用于AWS的Ansible和Terraform之间的差异
AWS代表AmazonWebServices,它是亚马逊的子公司,为个人、公司和商业实体提供按需云计算平台。Terraform和Ansible对待AWS管理的方式截然不同。
对于没有大量虚拟化经验的用户来说,Terraform是管理AWS的绝佳方式。尽管起初感觉很复杂,但Terraform已经大大减少了阻碍提高采用率的障碍。
将Terraform与AWS结合使用有几个显着优势。
Ansible长期以来一直为AWS提供重要支持。这种支持允许使用Ansible剧本解释甚至最复杂的AWS环境。描述后,用户可以根据需要多次部署它们,并能够扩展到不同区域的数百甚至数千个实例。
Ansible有近100个支持AWS功能的模块。例如虚拟私有云(VPC)、简单存储服务(S3)、安全令牌服务、安全组、Route53、关系数据库服务、Lambda、身份访问管理器(IAM)、AMI管理和CloudTrail等等。此外,它还包括1300多个附加模块,用于管理用户的Linux、Windows、UNIX等的不同方面。
以下是将Ansible与AWS结合使用时的优势。

Ansible、Puppet和Terraform的比较
Puppet、Terraform和Ansible已经存在了相当长的一段时间。它们在设置、GUI、CLI、语言、用法和其他功能方面有所不同。
您可以找到以下三者之间的详细比较:
需要考虑的三个综合解决方案
在查看了上述比较之后,Ansible对于以类似脚本的方式存储和配置系统非常有利,而不是其他方式。用户可以在短暂的环境中高效工作。它还可以与Kubernetes无缝协作以配置容器主机。
Puppet在社区支持方面更加成熟。Puppet具有出色的模块,使其能够更多地作为企业级解决方案工作。其强大的模块测试易于使用。Ansible适用于小型、临时和快速部署。鉴于Puppet被推荐用于长期或更复杂的部署,并且可以管理Docker容器和?容器编排器。Terraform在管理服务器下方的云服务方面表现更好。Ansible擅长配置软件和机器;Terraform擅长管理云资源。在为自动化设计IAC环境时,这三者都有其优点和局限性。成功取决于知道哪些工具用于哪些工作。
本文来源:国外服务器--ansible和terraform区别
本文地址:https://www.idcbaba.com/guowai/2866.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



