五大最流行的配置管理工具

电脑杂谈  发布时间:2019-08-13 07:02:59  来源:网络整理

imc 逃生工具如何配置_配置管理的工具_linux网络服务器配置,管理与实践教程

在本文中,我主要介绍配置管理的自动化。配置管理工具也是 基础构架即代码(Infrastructure as Code)(IaC)的一部分,支持使用经过检测和验证的硬件研发实践,通过明文定义文档管理和配置数据中心。

DevOps 团队只需要通过操作简单的顶配文档,就可以实现使用研发中包含版本控制、检测、大型部署、设计模式在内的各种绝佳实践。总而言之,顶配管理工具实现了通过汇编代码来使基础构架的顶配和管理显得自动化。

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

配置管理工具可以增加使用部署和变更的效能配置管理的工具,还可以让那些程序变得可重用、可拓展、可分析,甚至让这些保持在期望的状况,因而让债券的可控性提高。

使用配置管理工具的劣势还包含:

配置管理工具主要分为 拉取(pull)模式和 推送(push)模式。拉取模式是指安装在各台服务器上的 代理(agent)定期从 中央存储库(central repository)拉取最新的顶配并应用到对应的服务器上;而推送模式则由 中央服务器(central server)的中央服务器会触发其他受管服务器的更新。

配置管理的工具_linux网络服务器配置,管理与实践教程_imc 逃生工具如何配置

五大最流行的顶配管理工具

当前配置管理工具有很多,不同的顶配管理工具都有自己最适于的应用画面。而对于上面五个我根据字母次序罗列的顶配管理工具,都对 DevOps 有显著的帮助:全都具有开源许可证、使用内部配置文档、支持无人值守运行、可以通过插件自定义运行。下面对这些的介绍都来源于它们的软件库和网站内容。

Ansible

“Ansible 是一个极其精致的 IT 自动化平台,可以让你的使用和功能以更简单的方法部署。不需要安装任何代理,只需要使用 SSH 的方法和简单的修辞,就可以免除脚本或代码部署使用的过程。”—— GitHub Ansible 代码库

Ansible 是我最喜欢的工具之一,我在几年前就直到应用了。你可以使用 Ansible 在命令行中让多个服务器执行同一个命令,也可以使用 YAML 格式的 剧本(playbook)来让它自动执行特殊的操作,这促使了技术团队和非技术团队之间的沟通。简洁、无代理、配置文档对非技术人员友好是它的几个主要特点。

因为 Ansible 不需要代理,所以对服务器的资源消耗会很少。Ansible 默认使用的推送模式需要通过 SSH 连接,但 Ansible 也支持拉取模式。 剧本 可以使用最少的指示集汇编,其实也可以拓展为特别精细的自动化任务,包含引入角色、函数和其他人写的系统。

linux网络服务器配置,管理与实践教程_配置管理的工具_imc 逃生工具如何配置

你可以将 Ansible 和其他工具(包含 Ansible Works、Jenkins、RunDeck、 ARA 等)结合起来使用,因为它们工具 提供了运行剧本时的可追溯性 ,这种就可以创建控制程序的中央控制台。

CFEngine

“CFEngine 3 是一个流行的开源配置管理功能,它主要用来为的功能提供自动化配置和维护。”—— GitHub CFEngine 代码库

CFEngine 最早在 1993 年由 Mark Burgess 作为自动配置管理的医学原理提出,动机是提高计算机功能配置中的熵,最后收敛到期望的顶配状况,同样还阐述了幂等性是让功能接近期望状态的能力。Burgess 在 2004 年又提出了 承诺理论 (Promise Theory),这个理论描述了代理之间自发合作的模型。

CFEngine 的最新版本早已用到了兑现理论,在各个服务器上的代理流程会从中央存储库拉取配置。CFEngine 的顶配对技能要求较高,所以它比较适于技术团队使用。

Chef

imc 逃生工具如何配置_配置管理的工具_linux网络服务器配置,管理与实践教程

“为整个基础构架在顶配管理上带给便利的一个系统内置框架。”—— GitHub Chef 代码库

Chef 通过由 Ruby 编写的“ 菜谱(recipe)”来让你的基础构架保持在最新、最兼容的状况,这种“菜单”描述了一系列应处于某些状况的资源。Chef 既可以通过客户端-服务端的模式运行,也可以在 chef-solo 这种独立配置的模式下运行。大部分云提供商都较好地集成了 Chef,所以可以使用它为新机械做自动配置。

Chef 有广泛的用户基础,同样也提供了齐全的工具包,让不同技术背景的团队可以通过“菜单”进行沟通。尽管如此,它一直算是一个技术导向的工具。

Puppet

“Puppet 是一个可以在 Linux、Unix 和 Windows 系统上运行的自动化管理引擎,它可以按照集中的规范来执行诸如添加用户、安装插件包、更新服务器配置等等管理任务。”—— GitHub Puppet 代码库

Puppet 作为一款面向运维工程师和功能管理员的工具,在更多情况下是成为顶配管理工具来使用。它通过客户端-服务端的模式工作,使用代理从主服务器获取配置命令。

imc 逃生工具如何配置_配置管理的工具_linux网络服务器配置,管理与实践教程

Puppet 使用 声明式语言(declarative language)或 Ruby 来描述功能配置。它包括了不同的系统配置管理的工具,并使用 清单文件(manifest files)记录期望达到的目标状态。Puppet 默认使用推送模式,但也支持拉取模式。

Salt

“为基础结构或应用程序实现自动化管理的硬件。”—— GitHub Salt 代码库

Salt 的特长就是快速搜集数据,但是是上万台服务器也希望轻松完成任务。它使用 Python 模块来管理配置资料和执行特殊的操作,这种系统可以让 Salt 实现所有远程操作和状况管理。但配置 Salt 模块对技术水准有一定的要求。

Salt 使用客户端-服务端的结构(Salt minions 是客户端,而 Salt master 是服务端),并以 Salt 状态文件记录需要超过的目标状态。

总结

DevOps 工具行业仍然在发展,所以必须时刻关注其中的最新动态。希望这篇短文希望鼓励读者进一步探寻相关的定义和工具。为此, 云原生计算基金会(Cloud Native Computing Foundation)(CNCF)在 Cloud Native Landscape Project 中也提供了良好的参考案例。

via: https://opensource.com/article/18/12/configuration-management-tools

作者: Marco Bravo 选题: lujun9972 译者: HankChow 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出


本文来自电脑杂谈,转载请注明本文网址:
http://xinshanjie.com/a/jisuanjixue/article-119063-1.html

    相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...