DevOps 自动化运维工具Chef

Posted 架构师成长营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DevOps 自动化运维工具Chef相关的知识,希望对你有一定的参考价值。

最近在学习Chef, Chef 就是现在比较热门的自动化运维工具之一,其他的工具还有Ansible, Puppet, SaltStack.  为什么选择Chef,是因为Chef对Window的支持非常的好。

Chef的官方网站,https://www.chef.io/. 其当前最新的版本信息如下,

  • Chef Server版本是chef-server-core_12.8.0

  • Chef client的版本chef-client-12.13.37

  • chef 管理台的版本是chef-manage_2.4.3 

  • chef dev kit的最新版本是0.17.17

根据百度百科的定义,Chef是IT自动化平台,可让客户创建、部署、变更和管理基础设施运行时环境和应用。Chef是平台无关的,可以部署到云端、本地或作为虚机(VM)。Chef也被称为部署自动化工具和DevOps使能者,它是一款可以为不同规模企业提供许多集成选项的产品。


Chef是IT自动化平台,可让客户创建、部署、变更和管理基础设施运行时环境和应用。Chef是平台无关的,可以部署到云端、本地或作为虚机(VM)。Chef也被称为部署自动化工具和DevOps使能者,它是一款可以为不同规模企业提供许多集成选项的产品。

客户用Chef来创建、管理和部署应用栈、裸服务器以及VM。Chef平台主要基于客户/服务器。受管理的系统运行Chef客户端,后者再利用HTTP RESTful API连接Chef服务器。Chef服务器包含有一个数据库,里面存储有“配方”,“配方”会被打包成独立的“食谱”,代表着运行在客户端的独立组件—比方说JavaWebSphere以及mysql等,还会保留着所有受管理机器的详细目录。

这些配方是用来创建部署和集成应用所需的组件的可重用建构块的。配方会合并进上面提到过的食谱。一旦编写或从Chef社区下载后,cookbook和recipe就可以作为模板来构建应用栈。这让客户可以以一致和可重复的形式创建、管理和部署环境,并且加速了这些环境的部署速度。Chef被格式用来显著减少人工的服务开通准备工作,以及应用和数据中心资源的管理时间。

Chef的架构如下图所示意,


Chef的主要优缺点如下(http://blog.takipi.com/deployment-management-tools-chef-vs-puppet-vs-ansible-vs-saltstack-vs-fabric/)


When to use it: Before considering Chef, make sure you’re familiar with Git, as it’s required for configuration, and Ruby, as you’ll have to be writing in it. Chef is good for development-focused teams and environments. It’s good for enterprises looking for a more mature solution for a heterogeneous environment.

Price: Free open source version, standard and premium plans priced on a per node per month basis that can get down to $6/node/month or $6.75/node/month respectively at high volume.

Pros:

  • Rich collection of modules and configuration recipes.

  • Code-driven approach gives you more control and flexibility over your configurations.

  • Being centered around Git gives it strong version control capabilities.

  • ‘Knife’ tool (which uses SSH for deploying agents from workstation) eases installation burdens.

Cons:

  • Learning curve is steep if you’re not already familiar with Ruby and procedural coding.

  • It’s not a simple tool, which can lead to large code bases and complicated environments.

  • Doesn’t support push functionality.

网上关于Chef的资料比较多,大家可以自己搜索。笔者就不在啰嗦。 因为最近笔者在尝试安装最新的版本,但是网络的资料大部分都是 Chef Server 11版本的资料,而Chef 12的安装和Chef 11的安装还是有区别的。具体安装请读者参考后续文章。


以上是关于DevOps 自动化运维工具Chef的主要内容,如果未能解决你的问题,请参考以下文章

自动化运维工具安装部署 chef (八)- 分发配置策略

自动化运维工具安装部署 chef (四) - node的安装

自动化运维工具安装部署 chef (六)命令行总结

自动化运维工具安装部署 chef (三) - workstation的安装

运维管理工具+chef+puppet+ansible+SaltStack

自动化运维工具安装部署 chef (二) - server的安装