在云时代,Chef作为DevOps运动的重要工具之一,主要用于实现自动化配置管理和运维,帮助大大小小的企业解决各种运维问题。本书针对刚开始接触配置管理的开发人员和系统管理员,阐述了如何在短短几分钟或者几个小时之内搭建和部署应用,而不像以往那样要花几天或者几周时间。
本书介绍如何写基于Ruby的Chef代码,通过实例来引导读者逐步掌握各种Chef工具和配置管理概念。只要略懂命令行,熟悉基本的系统管理,就可以通过本书迅速掌握Chef。
Chef作为 DevOps运动的重要工具之一,用于快速实现云端自动化配置管理。全书共16章,主题涉及Chef配置管理、Ruby及其语法、如何写Chef recipe,如何用Test Kitchen管理沙盒测试环境,如何用Chef客户端管理单个节点,Chef cookbook如何写和如何用,如何用Chef服务器管理多个节点,搜索、数据包、角色、开发环境和测试等都有介绍。
本书是一本介绍Chef基础架构自动化平台的入门书,有比较强的实操性,很适合刚开始接触Chef、配置管理和自动化编程的读者阅读和参考。
Mischa Taylor是一名Chef咨询师,这家位于西雅图的高成长新创公司,主营业务为打造Chef平台,快速实现自动化配置,并将业务过程移到云端。他的兴趣聚焦于打造高质量的产品和提升组织内部工程实践的生产力。他能说会道且擅长指导,同时在软件开发和神经网络计算方面也颇有专研和造诣。
Seth Vargo是HashiCorp的软件工程师和开源倡导者。他先后任职于Chef (Opscode), CustomInk和匹兹堡的多家新创公司。他对技术和组织文化有很强烈的爱好。在写代码和开源相关工作之余,他喜欢参与本地用户组和会议。他是匹兹堡DevOps Days的组织者。
闫诺,Chef创始工程师。在Chef软件公司任职期间作为主要工程师研发了托管企业Chef服务。2011年离开Chef参与创办消费者推荐搜索引擎公司Livestar,2013年并入以图片为基础的推荐、探索引擎公司Pinterest。在Pinterest任职期间,他参与构建综合性实时认知及响应平台,后者服务于Pinterest的自动化垃圾内容处理、通知推送服务、广告服务及内容推荐服务等。2015年底,他离开Pinterest,目前正在为解决新的工程挑战而忙得乐此不彼。
闫诺毕业于美国华盛顿大学(西雅图),大学主修应用及计算数学。平时对世界各地的文化和各类艺术很感兴趣。工作之余,时常为朋友圈内有需要的创业公司提供帮助,积极参与鼓励大学生学习科学、技术、工程及数学的公益项目。
前言 .1
第1章 配置管理和Chef ...........7
什么是配置管理 ........7
为什么需要配置管理工具来实现IT自动化 ........8
Chef是什么 ...9
为什么企业需要Chef .9
接下来要做什么 ......12
第2章 配置Chef开发环境 ..... 15
安装一个适合程序员使用的文本编辑器 ..........16
Chef开发工具 ..........17
在Linux下安装Chef开发工具 ..18
在Windows下安装Chef开发工具 .........32
小结 41
第3章 Ruby和Chef语法 ....... 43
Ruby概述 ....43
Ruby语法和案例......44
Chef语法和案例 ......54
第4章 如何写第一个Chef配方单 ........... 61
创建代码的目录结构 ...........61
写下第一个Chef配方单 .......62
验证第一个Chef配方单 .......63
用配方单指定理想配置 .......65
卸载时,须明确指定不要做什么 ........69
小结 71
第5章 用Test Kitchen管理沙盒测试环境 73
安装Vagrant和VirtualBox ....75
启动自己的第一个虚拟机 ...79
YAML概览 .84
用.kitchen.yml配置Test Kitchen .........86
小结 87
第6章 用Chef客户端管理节点 .. 89
什么是节点 .89
在一个节点上创建沙盒环境 90
用Test Kitchen在节点上安装Chef客户端 .........91
第一次运行Chef客户端 .......93
Chef客户端的三种模式 .......95
命令行工具Ohai ......96
访问节点信息 ..........98
小结 ..........100
第7章 撰写和使用菜谱 ....... 103
你的第一个菜谱:每日消息 ..103
你的第一个菜谱:每日消息(使用Chef开发包) .....104
Cookbook_file资源简介 ....106
你的第一个菜谱:每日消息(Chef客户端) .107
Cookbook_file资源简介 ....109
第一次运行Chef .... 110
验证结果 .. 112
剖析Chef运行 ........ 113
菜谱结构 .. 116
必须了解的四个资源 ......... 119
Apache菜谱:手把手教你创建菜谱 .. 119
小结 ..........130
第8章 属性 133
Motd-Attributes菜谱 ..........134
设定属性 ..136
属性优先级基础 ....138
Include_Recipe ......139
属性优先级 142
属性排错 ..143
小结 ..........146
第9章 用Chef服务器同时管理多个节点 147
手动安装企业Chef .149
使用菜谱来自动化安装企业Chef服务器 ........151
幂等性简介 154
配置企业Chef服务器 .........159
测试连接 ..165
准备一个新节点 ....166
用Chef Solo配置Chef服务器 173
小结 ..........174
第10章 社区以及Chef-Client菜谱 ....... 175
使用社区菜谱 ........175
Chef-Client菜谱 .....177
Knife Cookbook Site插件 ..180
使用Knife Cookbook Site搜索社区菜谱 .........181
通过Knife Cookbook Site管理Chef服务器中的社区菜谱 ...........182
Chef-Client配方单 .184
配置Knife使用生产环境SSL设置 ......186
配置Chef-Client使用生产环境的SSL设置 ......188
小结 ..........196
第11章 Chef Zero .. 197
Test Kitchen和Chef Zero ...197
用Chef-Playground在宿主机器上运行Chef-Zero .......200
小结 ..........205
第12章 搜索 .......... 207
从命令行搜索 ........207
用Knife从命令行搜索 ........208
使用Test Kitchen从配方单中搜索 ..... 211
小结 ..........215
第13章 数据包 ....... 217
在配方单中使用数据包项目的数据创建本地用户 .....222
验证用户 ..226
加密数据包 227
小结 ..........233
第14章 角色 .......... 235
创建一个网页服务器角色 .236
属性和角色 238
角色和搜索 239
角色菜谱 ..241
小结 ..........242
第15章 环境 .......... 243
创建一个开发环境 .244
属性和环境 245
完整实例 ..247
小结 ..........258
第16章 测试 .......... 259
关于测试 ..259
重温Apache菜谱 ....262
使用Serverspec进行自动化测试 ........266
使用Foodcritic进行自动化测试 .........283
使用ChefSpec进行自动化测试 ..........287
小结 ..........295
第17章 结语 .......... 297
词汇表 ......298
附录A 开源Chef服务器 ...... 301
附录B 托管企业Chef .......... 323
learning_chef-table.indd 9 16/6/28 下午3:32
第1章 配置管理和Chef
Chef是一个面向(像你一样的)信息科技(IT)专家和软件工程师的配置管理工具。由
于配置管理有许多不同的定义,所以让我们先来解释在本书中配置管理代表的意思以及
为什么你需要一个配置管理工具。我们同时会介绍Chef并讲解为什么你需要它。
什么是配置管理
在IT行业中,配置管理是在将软件应用程序发布给消费者的过程中对以下实体进行管理
的工程实践:
? 硬件
? 软件
? 基础架构
? 人
? 流程
配置管理源于解决团队工作中最基本的挑战。当你是唯一的系统管理员并管理少量服务
器时,变化管理一般没有多复杂;然而协调若干系统管理员和工程师来管理数百甚至成
千上万个服务器和应用程序来支持巨大数量的用户,则非常复杂,并往往需要一些工具
来支持。
现代的IT配置管理工具通常包含对Mark Burgesspass提出的自动化和基于策略的理论之
实现。他在二十世纪九十年代末到千禧早年间在奥斯陆大学学院任教授时开发了IT自动
化理论的如下核心思想。
? 配置改变必须由一种系统化的方式处理来保证系统的配置是正确和可靠的。
? 系统本身一定要有一些自救措施,从而错误可以自动被侦测到并修复而无需明确的
指令。
当下的IT配置工具的代表包括CFEngine、Puppet、Microsoft Windows中的Desired State
Configuration引擎、Ansible、SaltStack以及(毫无疑问)Chef。
为什么需要配置管理工具来实现IT自动化
在管理复杂的企业基础架构时使用自动化配置管理工具,有很多至关重要的原因,以下
是其中四个重要原因。
? 一致性。如果基础架构是手动配置的,怎样才能知道所有的服务器的配置都一致?
再者,怎样才能确定所有的服务器配置都符合标准和安全需求?(比如说, 系统管
理员有没有在相应系统里记录所发生的改变?)
使用一个配置管理工具来自动化重复的任务能使系统管理员事半功倍。当这些可重
复的任务非常艰难和复杂时,人工通常很难每次都将它们一模一样地完成。而这正
好是电脑(配置管理工具)擅长做的事情。让配置管理工具来自动化这些复杂的任
务可以让系统管理员专注于其他人类擅长的重要的事情。
? 高效的变化管理。当基础架构没有使用配置管理工具而完全手动构建的时候,人们
通常害怕改变。长久以往,这些手动管理的服务器通常会包含大量难以理解和更改
的零碎配置。
在这些情况下,公司或组织机构一般会使用大量的流程去管理变化,而这些流程通
常希望最小化变化或最大化延迟变化的发生。这通常造成延迟发布用户所需要的新
功能。
当服务器永远可以轻松重建时,改变便不再可怕,相应的,管理变化的流程也会变
少。小的改变随时可以发生,比如每天,甚至每天多次。
? 简化重建。当服务器是手动建立的时候,从零重建往往不容易。那么如果服务器在
灾难性事件中被摧毁了怎么办?多久才能恢复服务?
使用配置管理工具自动部署能帮助快速地恢复服务。与其在服务器上进行更新或部
署应用程序补丁(有可能是零碎的操作),系统管理员可以快速通过自动的方式建
立一个新的、完成更新的系统然后把旧的关掉。当重建很方便的时候,系统管理员
则更无惧对基础架构进行快速的迭代和改变。
? 透明性。配置管理工具带有监视和汇报功能。监视系统管理员所做的工作并不需要
很复杂的工具,但试图理解一个包含若干系统管理员和若干软件工程师,每天部署
若干次软件改变的工程团队都做了些什么,的确需要一个配置管理工具。
当基础架构变化由自动化系统来完成时,所有改变都可以自动登记在相应的跟踪系
统中来提高透明度,显示出团队所做的有意义的工作。
Chef是什么
Chef是可以用来配置和管理物理数据中心或云中基础架构的自动化平台。可以把它部署
到公司最适合的基础架构类型中。可以用Chef来加速应用程序部署,甚至完成持续部署
流程。Chef的关键威力在于它将基础架构变为代码。
用代码来表示基础架构意味着计算环境拥有一些与其应用程序一样的属性。
? 基础架构可以有不同版本。
? 基础架构可以被随时重建。
? 基础架构可以拥有完整的测试来保证正确性。
图1-1展示了Chef的基本架构。
Chef开发包的组件可以帮助支持你在开发机器上写Chef代码;Chef服务器的组件可以帮
助延伸配置管理能力,使你可以管理成百上千或更多的服务器。
为什么企业需要Chef
当Adam Jacob在2009年最开始创建Chef时,他有三个重要的观点来解决他在其他配置管
理工具中看到的不足。
1. 配置管理工具应该对云基础架构提供顶级支持。
2. 任何一个基础架构都是独一无二的。复杂的企业基础架构要能够极大地得益于将其
IT基础架构和应用程序部署流程以代码来建模。
3. 卓越的工具和点子来源于活跃的用户社区。光靠一个人的力量是不够的。
图1-1:Chef架构
在过去的几年里,Chef在活跃社区的支持下发展成为一个强大的、与众不同的配置管理
工具,相比其他产品,它具有以下优势。
超强的可伸缩性
类似Facebook之类的客户http://www.pcworld.com/article/2084900/facebook-uses-aseasoned-
chef-to-keep-servers-simmering.html[使用Chef管理上万台服务器],而仅仅
需要少量人力资源。
极其强大
Chef(客户端)建立在Ruby编程语言之上,当你需要的时候,可以直接使用Ruby来
自定义Chef。
learning_chef-all.indd 10 16/6/28 下午2:49
配置管理和Chef | 11
多种用法
你可以通过很多方式使用Chef。Chef可以在无服务器模式独立运行或配合中央服务
器(Chef服务器)运行。你也可以选择使用推送或拉(轮询)模式(或两种结合)
来做部署。
开放
Che f完全开源并拥有一个非常活跃的由系统管理员和软件工程师组成的用户社
区。开源Chef被用来支持Dell的产品(https://www.cloudave.com/14174/opscodechef-
the-secret-sauce-behind-dell-open-source-crowbar/)、Facebook(https://www.
getchef.com/blog/2013/02/04/facebook-likes-opscode-and-private-chef/)和亚马逊云
服务(https://www.getchef.com/blog/2013/02/20/aws-opsworks-uses-opscode-chef-asdefault-
automation-engine/)。
透明
Chef分析平台强化Chef,让你可以在重要改变生效的时候收到通知来保证对标准的
遵循。
Chef独特的特性体现出强大的灵活性。你不需要为适应Chef而挣扎,而是让Chef适应你
和你的环境。你可以部署到云或本地基础架构,也可以在代码中描述任何资源,无论它
们和标准的配置有多么不同。
使用Chef,通常并不需要从零开始写描述基础架构的代码。许多标准的基础架构配置和
任务的菜谱都已经在Chef超市(https://supermarket.chef.io/)中,免费的。
一旦掌握Chef,就可以用它来做以下事情。
? 完全自动化部署,包括内部和面向用户的系统。
? 自动化伸缩基础架构。
? 让基础架构自我修复。
举例而言,Tom Hallet使用Chef创建了一个叫SoloWizard的工具来自动化其Mac OS X开
发机器的部署。SoloWizard基于Pivotal Labs所做的促进开发者和最终用户使用自动化的
工作。正像图1-2中所示,SoloWizard允许你一键创建一个新的开发环境。你甚至可以通
过在一个简单的网站上做选择来个性化输出的脚本。此工具在SoloWizard网站(http://
www.solowizard.com)可以找到。
图1-2:SoloWizard自动化创建Mac OS X开发工作站
接下来要做什么
在本书的前半部分,我们会讲解Chef客户端的基本组件,展示如何利用代码使基础架构
可以进行版本控制和使其可以重复。我们会讲到以下三个主题:
? Test Kitchen
? Chef Solo/Chef Local
? Cookbooks(菜谱)
learning_chef-all.indd 12 16/6/28 下午2:49
配置管理和Chef | 13
我们也会利用大量动手实例来让你掌握和巩固Chef基础架构编程的基本要素。
在本书的后半部分,我们会介绍Chef服务器的基本要素,展示如何在基础架构复杂度和
范围扩展时随之扩展你的配置管理能力:
? 物理数据中心的Chef服务器
? Chef Zero
? Roles(角色)、Data Bags(数据包)和Environments(环境)
? Knife
本书覆盖的工具都是免费和开源的。一些付费的工具会被提及,但对学习Chef而言并不
是不可缺少的。
下一章从Chef开发包安装过程来开始Chef旅程,好让你可以从一开始就动手实践,写
Chef代码。
前言
这是一本什么书
《学习Chef》是一本针对学习Chef基础架构自动化平台的入门书籍。这是一本面向
Chef、配置管理和自动化编程初学者的书籍。
通过使用Chef,你将可以对你的基础架构内应用程序的配置、打包和部署以代码的形式
表现出来。我们会展示为什么通过代码来为你的基础架构建模会很轻松、自然地带来可
在任何时候重建整个基础架构的便利,而手动运行命令则不能如此。一旦你理解了这个
用代码来记录和建模整个基础架构的蓝图,就可以在几分钟或小时内建立或重建你的整
个应用基础架构,而不是像手动进行那样需要几天、几周或更长时间来完成。本书为入
门书籍,你并不需要拥有任何Chef、基础架构自动化或编程的经验。
首先,我们会展示如何在你的个人开发用电脑上配置Chef的开发环境。你将来会使用此
开发环境来撰写和测试Chef代码。俗话说“实践出真知”,学写代码也如此。因此我们
会在本书中尽早引导你开始实践写代码,并在每个新章节介绍一个新的概念和相应的
Chef工具来慢慢引导你前进。我们也会提供动手实例来帮助你加深对概念的理解,实践
动手写代码。
在你读完本书之后,你将对Chef和基础架构自动化的基本概念有较好的理解。然后可
以继续阅读以下两本对Chef更深入探讨的书籍:Stephen Nelson-Smith写的Test-Driven
Infrastructure with Chef(第2版)和Jon Cowie写的Customizing Chef。
谁是此书的读者群体
本书适合没有Chef和基础架构自动化经验的系统管理员和软件工程师。读者需要相对熟
悉命令行的使用及能够完成基本的系统管理任务。
本书中所有的动手实例都可以在Linux、Mac OS X或Windows上操作。必要的时候,我
们会提供分别针对每个平台的讲解。由于目前并没有针对Chef的易用的集成开发环境
(IDE),和Chef交互的主要界面是命令行。幸运的是,除了最开始的安装过程之外,
Chef的命令行界面在各个平台上几乎相同,这使我们能够在本书覆盖上述三个操作系统
下Chef的使用而不至于过度干扰使用其中任何一个操作系统的读者。
你不需要拥有自动化编程经历来阅读此书,但你至少要写过shell脚本、批处理文件或
PowerShell脚本。你应该在学习写Chef代码之前对写任何一种脚本相对熟悉。
为什么都是厨房用语
在阅读此书的时候,你也许会注意到Chef的发明者使用厨房用语来描述基础架构自动化
工具和概念。Chef软件公司(发明并维护Chef的公司)的工程师们在早期创建Chef的时
候发现类似菜谱或按照配方单做菜的说法是对一些诸如一个自动化脚本的集合或运行一
份永远能一致重建一个基础架构组件的代码的抽象概念的很好的比喻。如此使用厨房用
语来做比喻,能让初学者面对其他专业用语相对更容易接受基础架构自动化的概念。除
此以外,从市场和品牌的角度也让人更容易记得Chef。
本书采用的约定
本书采用以下排版约定。
斜体(italic)
用于表明新的术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
用于程序清单,在正文段落中出现的程序元素(如变量或函数名)、数据库、数据类
型、环境变量、语句和关键字也采用这样的字体。
等宽粗体(Constant width bold)
用于显示命令或应该由用户键入的其他文本。
等宽斜体(Constant width italic)
表明这里的文本需要替换为用户提供的值或其他由上下文确定的值。
提示:这个图标表示小提示或建议。
说明:这个图标表示通用的说明。
警告:这个图标表示警告或需要注意。
示例代码的使用
补充资料(案例代码、练习等等) 可在此链接下载(英文):http://learningchef.com。
本书的目的是帮助读者完成工作。通常情况下,可以在你的程序或文档中使用本书中
给出的代码。不必联系我们获得代码使用授权,除非你需要使用大量的代码。例如,
在写程序的时候引用几段代码不需要向我们申请许可。但以光盘方式销售或重新发行
O’Reilly书中的示例确需要获得许可。引用本书或引用本书中的示例代码来回答问题也
不需要申请许可。但是,如果要将本书中的大量范例代码加入你的产品文档,则需要申
请许可。
我们欣赏引用时注明出处的做法,但不强求。引用通常包括书名、作者、出版社和
ISBN,例如“Learning Chef by Mischa Taylor and Seth Vargo (O’Reilly). Copyright 2015
Mischa Taylor and Seth Vargo,978-1-491-94493-6”。
如果觉得使用示例代码的情况不属于前面列出的合理使用或许可范围,请通过电子邮件
联系我们,邮箱地址为permissions@oreilly.com。
Safari® Books Online
说明: Safari Books Online是一个按需定制的数字图书馆,以图书和视频的形式提供全球技术领域
和经管领域内知名作者的专业作品。
专业技术人员、软件开发人员、网页设计人员、商务人员和创意专家将Safari Books
Online用作自己开展研究、解决问题、学习和完成资格认证培训的重要来源。
Safari Books Online为组织机构、政府部门、教育和个人提供广泛、灵活的产品组合
和定价方式。在这里,订阅者通过一个可以全文检索的数据库中就能够访问数千种图
书、培训视频和正式出版之前的书稿,这些内容提供商有O’Reilly Media、Prentice Hall
Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit
Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、
IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、
McGraw-Hill、Jones & Bartlett、Course Technology及其他几百家出版社。欢迎访问
Safari Books Online,了解更多详情。
联系我们
对于本书,如果有任何意见或疑问,请通过以下地址联系出版商:
美国:
O’Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
本书也有相关的网页,我们在上面列出了勘误表、范例以及其他一些信息。网址如下:
http://shop.oreilly.com/product/9781491944936.do(英文版)。
对本书做出评论或者询问技术问题,请发送E-mail至以下邮箱:bookquestions@oreilly.com。
如果希望获得关于本书、会议、资源中心和O’Reilly的更多信息,请访问以下网址:
http://www.oreilly.com。
致谢
来自Mischa:我要感谢所有对本书创作过程中给予反馈的人。感谢我的姐姐和Jane Maris
Sinagub博士给予我的精神支持和鼓励。
我要真心地感谢所有对本书有所贡献的人,包括但不限于: Alex Vi n y a r、Alyssa
Nabors、Anthony Stonebarger、Daniel DeLeo、Deluan Quintao、Eric Helgeson、Gene
Harris、Glenna Gorlick、Jason Steele、Jennifer Davis、Jo Rhett、John Keiser、Jennifer
Davis、John Fitzpatrick、Jon Cowie、Julian Dunn、Katherine Daniels、Kelly Setzer、
Kimberly Lanning、Landon Medlock、Lejo Varughese、Mandi Walls、Michael Goetz、
Michael Vitale、Nathen Harvey、Patricia Fernandes、Rhiannon Portwood、Sascha
Bates、Sean Carolan、Serdar Sutay、Shane Robinson、Steve Taylor和Thomas Petchel。
感谢Chef软件公司把Chef基础培训资料授予Creative Commons Attribution Share Alike许
可。 本书中使用了其中的一些图表和例子。同时感谢Courtney Nash、Brian Anderson和
所有O’Reilly同仁,你们的Atlas写作系统使整个写作过程变得愉快。
特别感谢:Mark Burgess做的理论开发让Chef成为可能,John Keiser提供written in stone
示例,Jennifer Davis对如何组织本书最开始的章节提供了宝贵的反馈,John Fitzpatrick
测试了安装的示例及提供反馈,Nathen Harvey帮助提供入门资料,Sascha Bates对于
Chef初学者需要从何学起提供了清晰的指导,Adam Jacob和Sean O'Meara给我的关于
Chef配置管理理论的指导,以及Steve Taylor和Mark Andersen给予机会在培训中试用本
书的内容。
最后,我要感谢我的共同作者Seth Vargo所给予的信任,使我可以一起完成此书。
来自Seth:我想感谢让本书成为可能的所有人。我尤其要感谢Nathen Harvey、Ramez
Mourad和Jake Vanderdray,因为他们向我介绍了Chef和整个Chef社区。没有他们的鼓励
和帮助,我不可能完成此书。
除了要感谢所有Mischa已经提到的人之外,我还要感谢我的团队Seth Chisamore和
Yvonne Lam一直以来的支持和帮助;感谢我的室友和最好的朋友Joe Frick支持我整晚
都在电脑前敲键盘(而放弃其他娱乐活动); 感谢卡耐基·梅隆大学的Larry Heimann
教授和Jeria Quesenberry教授带给我足以使我能成为一位教育者的经历和机会; 感谢
Stafford Brunk迫我跳出固有思维;感谢我的父母Richard Stormer、Robbin Stormer、
Robert Vargo和Dara Vargo的大量支持和对我完成此书的持续提醒。
同时要感谢Courtney、Brian、Sonia和整个O’Reilly团队把整个写作过程变得完美。我
同时希望特别感谢我的共同作者Mischa Taylor之卓越贡献和为完成本书而付出的辛勤努
力,没有你,我不可能做到。
自动化运维的其中一个选择Chef,所以买来看看。
评分好书
评分充电,学习的,印刷和编辑都蛮好的。内容紧凑。
评分Chef是一个面向(像你一样的)信息科技(IT)专家和软件工程师的配置管理工具。由
评分为什么你需要一个配置管理工具。
评分没看
评分为什么你需要一个配置管理工具。
评分需要用到的知识,买来看看
评分为什么你需要一个配置管理工具。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有