配置管理工具_前5个配置管理工具

配置管理工具

随着组织发现它如何使他们能够产生更好的应用程序并减少其软件产品的上市时间,DevOps不断发展并获得关注。

DevOps的核心价值是文化,自动化,度量和共享(CAMS),而组织对它们的坚持将影响它的成功程度。

  • 文化将人与过程融合在一起;
  • 自动化为DevOps创建结构;
  • 测量可以改善; 和
  • 共享启用了CAMS周期中的反馈循环。

在本文中,我将重点介绍自动化的一个方面:配置管理。 作为基础设施即代码 (IaC)的一部分,配置管理工具允许使用经过测试和验证的软件开发实践来通过纯文本定义文件管理和配置数据中心。

通过操作简单的配置文件,DevOps团队可以使用应用程序开发最佳实践,例如版本控制,测试,小型部署和设计模式。 简而言之,这意味着可以编写代码来配置和管理基础结构以及使流程自动化。

为什么要使用配置管理工具?

配置管理工具使更改和部署变得更快,可重复,可伸缩,可预测,并能够维持所需状态,从而使受控资产进入预期状态。

使用配置管理工具的一些优点包括:

  • 遵守编码约定,使浏览代码更容易
  • 幂等,即无论执行多少次代码,结束状态都保持不变
  • 分发设计可改善对大量远程服务器的管理

某些配置管理工具使用拉模型,在该模型中,服务器上安装的代理会定期运行,以从中央存储库拉最新的定义,并将其应用于服务器。 其他工具使用推送模型,其中中央服务器触发对托管服务器的更新。

前5个配置管理工具

有多种可用的配置管理工具,每种工具都有特定的功能,在某些情况下要比其他情况更好。 但是,以下按字母顺序列出的前五种配置管理工具具有一些共同点,我认为它们对于DevOps的成功至关重要:它们都具有开源许可证,使用外部化的配置定义文件,可以无人值守运行并且可以编写脚本。 所有描述均基于该工具的软件存储库和网站中的信息。

Ansible

“ Ansible是一个非常简单的IT自动化平台,可简化您的应用程序和系统的部署。避免编写脚本或自定义代码来部署和更新应用程序-使用接近普通英语的语言,使用SSH,使用SSH进行自动化,而无需安装任何代理远程系统。” — GitHub存储库

Ansible是我最喜欢的工具之一; 我几年前开始使用它,后来爱上了它。 您可以使用Ansible从命令行对服务器列表执行相同的命令。 您还可以使用它通过写入YAML文件中的“剧本”来自动执行任务,从而促进团队与非技术人员之间的通信。 它的主要优点是它简单,无代理且易于阅读(特别是对于非程序员)。

由于不需要代理,因此服务器上的开销较小。 在推送模式(默认设置)下运行时,SSH连接是必需的,但是如果需要,则可以使用拉模式。 剧本可以用一组命令的最小写入或它们可以扩展为更复杂的自动化任务,其中可能包括角色,变量和其他人编写的模块。

您可以将Ansible与其他工具结合使用以创建中央控制台来控制流程。 这些工具包括Ansible Works(AWX),Jenkins,RunDeck和ARA ,它们在运行剧本时提供可追溯性

发动机

“ CFEngine 3是一种流行的开源配置管理系统。其主要功能是为大型计算机系统提供自动配置和维护。” — GitHub存储库

CFEngine由Mark Burgess于1993年提出,是一种科学的自动配置管理方法。 目的是处理计算机系统配置中的熵,并通过最终状态“收敛”解决它。 收敛表示所需的最终状态,并详细说明了幂等性,以达到所需的最终状态。 Burgess的研究在2004年得到发展,当时他提出了Promise理论作为代理商之间自愿合作的模型。

CFEngine的当前版本结合了Promise理论,并使用在每台服务器上运行的代理,这些代理从中央存储库中提取配置。 它需要一些专家知识来处理配置,因此最适合技术人员。

厨师

“一个系统集成框架,旨在为您的整个基础架构带来配置管理的好处。” — GitHub存储库

Chef使用Ruby编写的“食谱”来确保您的基础架构运行最新并合规。 配方描述了应处于特定状态的一系列资源。 Chef可以在客户端/服务器模式下运行,也可以在名为Chef-solo的独立配置下运行。 它与主要的云提供商具有良好的集成,可以自动配置和配置新计算机。

Chef具有扎实的用户基础,并提供完整的工具集,以允许具有不同技术背景和技能的人们围绕食谱进行交互。 但是,从根本上讲,它是更注重技术的工具。

木偶

“ Puppet是用于Linux,Unix和Windows系统的自动管理引擎,它基于集中式规范执行管理任务(例如添加用户,安装软件包和更新服务器配置)。” — GitHub存储库

Puppet被认为是面向操作和系统管理员的工具,现已整合为配置管理工具。 它通常在客户端-服务器体系结构中工作,并且代理与服务器通信以获取配置指令。

Puppet使用声明性语言或Ruby来描述系统配置。 它以模块进行组织,清单文件包含所需状态的目标,以确保按需保留所有内容。 Puppet默认使用推模型,并且可以配置拉模型。

“可大规模自动管理和配置任何基础架构或应用程序的软件。” — GitHub存储库

Salt是为高速数据收集而创建的,可扩展到成千上万的服务器。 它使用Python模块来处理配置详细信息和特定操作。 这些模块管理Salt的所有远程执行和状态管理行为。 配置模块需要一定水平的技术技能。

Salt使用客户端-服务器拓扑(以Salt主服务器作为服务器,Salt奴才作为客户端)。 配置保存在Salt状态文件中,该文件描述了将系统保持在所需状态所需的一切。

结论

DevOps工具的格局一直在不断发展,因此,密切注意这些变化非常重要。 我希望本文能鼓励您进一步探索这些概念和工具。 如果是这样,Cloud Native Computing Foundation(CNCF)在Cloud Native Landscape Project中保持良好的参考。


接下来要读什么

翻译自: https://opensource.com/article/18/12/configuration-management-tools

配置管理工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值