搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
奔跑吧Ansible:探索自动化配置与部署捷径
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121351440
  • 作      者:
    (加)Lorin Hochstein,(瑞士)Rene Moser著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2018
收藏
编辑推荐

在当下百家争鸣的配置管理工具领域中,Ansible有着独特的优势:原生即轻量。你不需要在要管理的机器上安装任何软件,并且它的学习曲线非常平缓。在第2版中,不管你是要将代码部署到生产环境的开发者还是寻求更好的自动化解决方案的系统管理员,这本使用指南都将帮助你快速地在生产环境中使用这个工具。

作者Lorin Hochstein和René Moser示范了如何编写playbook(Ansible中的配置管理脚本),如何管理远程服务器。除此之外,他们还会带领你探索这个工具的潜在法宝:内置模块。通过阅读本书,你会发现,Ansible拥有你所需要的功能的同时,还简单得超出你的想象。

■ 理解Ansible区别于其他配置管理系统的特点

■ 使用YAML语法编写你自己的playbook

■ 部署一个复杂应用的完整范例

■ 管理Windows服务器和自动化配置网络设备

■ 将应用部署到AMZN EC2或其他云平台

■ 使用Ansible创建Docker镜像并部署Docker容器

建议从头开始阅读本书,后面的章节会建立在前面章节的基础之上。因为它是以教程风格编写的,所以你可以在自己的机器上跟随讲解一步步操作。并且,大多数实例都与Web应用程序相关,对于生产环境非常有借鉴意义。

展开
作者简介

Lorin Hochstein Lorin Hochestin是Netflix的Chaos工程团队的高级软件工程师。他曾在SendGrid实验室担任高级软件工程师,在那之前曾在Nimbis Services担任云服务首席架构师,还曾经是加州大学信息科学院的计算机科学家。从小在魁北克蒙特利尔长大,除了偶尔会说“闭上灯”这种话之外,从他的口音中你绝对猜不出他是加拿大人。他正在回归学术界:他已经在内布拉斯加大学林肯分校作为教授计算机科学与应用的副教授两年。此外,他还曾作为计算机科学家在南加州大学信息科学院工作过四年。他在麦吉尔大学取得了计算机工程学学士学位,在波士顿大学取得了电子工程学硕士学位,并在马里兰大学帕克分校取得了计算机科学的博士学位。他现在在Netflix 的Chaos 工程团队任高级软件工程师。

 

René Moser 是一位瑞士籍系统工程师,ASF CloudStack的代码贡献者,Ansible中与CloudStack集成相关部分的作者,并从2016年起一直是Ansible社区的核心成员。与妻子和三个孩子定居在瑞士。他获得了IT 专业的高等教育文凭。在IT 领域,他喜欢以简单的方式实现需求并不断扩展。他沉浸于开源社区已超过15 年,他是Ansible 核心贡献者和40 多个Ansible 模块的作者,他还是Apache CloudStack 项目管理委员会成员及代码贡献者。他目前在SWISS TXT 任职系统工程师。

 

译者简介

主译人员曾于新浪任职技术总监,负责私有云平台研发与运维并支撑新浪微博从零至上市高速发展的过程。后于华为任职技术专家,致力于提升华为公有云运维能力。2016年加入贝壳找房前身链家网,并一直致力于打造基于ansible的自动化平台。

展开
内容介绍

Ansible是近年来急速发展的开源配置管理工具。在Ansible之前,行业中已经有很多开源配置管理工具了,特别是大名鼎鼎的Puppet,简直是配置管理工具中的超级star。然而,Ansible依靠它的简单易用、“零依赖”以及弱抽象获得了无数开发者和运维工程师的青睐。遗憾的是,除了官方文档外,Ansible相关的优秀文档凤毛麟角,而本书恰恰就是为了缓解这一问题而编写的。作者在《奔跑吧Ansible(第2版):探索自动化配置与部署捷径》中演示了如何使用Ansible管理接近真实生产环境的案例。既展现了Ansible的强大功能,又能够帮助读者快速入门与上手,《奔跑吧Ansible(第2版):探索自动化配置与部署捷径》非常适合作为官方文档的补充或者搭配阅读。特别值得一提的是,《奔跑吧Ansible(第2版):探索自动化配置与部署捷径》第2版还增加了管理Windows服务器和网络设备方面的章节,并重新编写了Docker相关章节,及时地对第1版中的不足进行了改进。

展开
精彩书评

大规模集群的配置管理工具一直都是提升效率的利器。新浪在 2003年前后开始使用 CFengine;在 2010年前后,为了解决 CFengine的一些问题,逐渐在一些业务中用 SSH进行批量命令执行和配置文件拉取,这种组合一直用到现在,管理着数万台服务器,但现在基本上已经以 SSH为主了。本书的译者在新浪负责很多配置管理系统的开发,以我们的经验来看,基于 SSH进行配置管理有很多好处,这也是我对 Ansible很感兴趣的地方。充分利用系统现成的机制,不仅省去了 Agent的安装,在数千台规模的大型数据中心,少一些中心化服务还意味着少了一些路由和安全策略的配置,省去了很多不必要的麻烦。当然,Ansible还有很多吸引人的地方,非常值得你去学习和发现。

——童剑新浪研发中心总经理

 

Ansible作为自动化系统运维的一大利器,在构建整个体系过程中有着举足轻重的地位。 DSL、幂等性、playbook、大量的模板等都是它的魅力所在,再加上易封装、接口调用方便, Ansible正在被越来越多的大公司采用,包括独立使用以及与其他工具(如 Puppet)结合使用。本书通过大量简单易用的实例帮助读者快速上手,通读全书会让你对 Ansible有一个全面的了解,动手操作书中的实例,可快速掌握 Ansible,剩下的就交给你的灵感吧。

——刘宇 @守住每一天,金山西山居架构师《Puppet实战》作者,《Puppet实战手册》译者之一

 

对于 DevOps,我自己的理解是运维即开发,人管理代码,代码管理机器,而不是人直接管理机器。Ansible帮我们实现了运维人员向运维开发的转型,让繁杂、危险的运维工作变得简单、安全和可控。本书秉承了 Ansible这一工具简明的一贯特点,不是长篇累牍地讲解复杂技术原理,而是列举了大量简明的实例,拿来阅读半小时即可上手解决实际问题。

——程辉 UnitedStack公司创始人兼 CEO

 

我在几个小时内就疯狂地“啃”完了第 1版《奔跑吧 Ansible》的手稿: Lorin妙笔生花,对 Ansible的讲解如行云流水。听到他与 René合写第 2版的时候我感到非常兴奋。在第 2版中,两位作者向读者展示了如何将一个非常有用的实用工具应用得出神入化,我想不出有什么内容是他们没有讨论到的。

—Jan-Piet Mens,咨询顾问

 

Ansible的万用指南。本书不仅适用于入门,也适用于了解如何使用高级功能提升你的 Ansible技能。

——Matt Jaynes,High Velocity Ops首席工程师

 

Ansible的美妙在于,你可以从实践入手,而它又易于快速实现原型,很快就能迭代起来,并且能不断解决问题。这当然很棒。然而,随着时间的推移,这种方式会导致知识和理解上的偏差,而且很难去调和。《奔跑吧 Ansible》(第 2版)恰恰可以解决这个问题。因为它从 Ansible的基础知识一直讲解到使用 YAML和 Jinja2的复杂性。而且本书还包含许多现成的案例可供学习和测试,可以帮助读者深入了解自动化构建与部署生产环境。在过去几年的培训课程和实践工作中,我总是向同事和客户推荐这本书。

——Dag Wieers,自由职业 Linux系统工程师, Ansible长期贡献者和咨询顾问

 

本书既为大家提供了简单功能的讲解,同时也深入探讨了 Ansible的配置管理方法。本书还包含很多提示和指引,并覆盖了各种形式的案例,例如 AWS、Windows和 Docker。

——Ingo Jochim, itelligence GMS/CIS Cloud Implementation经理

 

Lorin和 René字字珠玑,妙合无痕。他们手把手带领读者完成创建和管理 Ansible项目的所有重要步骤。本书不单单是一本 Ansible的参考书,它还涵盖了官方文档中缺少的几个重要概念和主题。它是 Ansible初学者的优秀学习资源,同时也包含许多对 Ansible中高级使用者很有帮助的概念与技巧。

——Dominique Barton, confirm IT solutions DevOps工程师

 

不管你是一名新手,还是一名已经在使用 Ansible并且希望继续取得进步的老程序员,本书都精辟地涵盖了你所需要了解的内容。它与同类书籍至大的区别在于,它采用了真实的例子,并解释了如何实现以及为什么会这样,这一大特点将帮助你更加深入地理解 Ansible。

——Paul Angus, ShapeBlue技术 VP

 

我在几个小时内就疯狂地“啃”完了第1版《奔跑吧Ansible》的手稿:Lorin对Ansible的讲解如行云流水,妙笔生花。听到他与René合作第2版的时候我感到非常兴奋。在第2版中,两位作者向读者展示了如何将一个非常有用的实用工具应用得出神入化,我想不出有什么内容他们没有讨论到的。

——Jan-Piet Mens 咨询顾问

展开
目录

序  xxiii

第 2版前言.  xxv

第 1版前言.  xxvii

第 1章 简介  1

关于版本的说明  2

Ansible的优势  2

Ansible如何运作  3

Ansible的精妙设计赏析  4

易读的语法  4

远程主机无须安装依赖 5

基于推送模式  5

使用 Ansible管理小规模环境  6

内置模块  6

非常轻量的抽象层  7

Ansible太过于简单了吗  8

需要哪些基础知识  8

哪些内容不会涉及  9

安装 Ansible  10

建立一台用于测试的服务器   11

使用 Vagrant来创建测试服务器  11

将测试服务器的信息配置在 Ansible中  14

使用 ansible.cfg文件来简化配置  16

展望  19

第 2章 playbook:一切的开始. 20

一些准备工作  20

一个简单的 playbook  21

定义 Nginx的配置文件   23

创建一个定制的首页  24

创建一个 webservers群组  25

运行这个 playbook  25

YAML格式的 playbook  27

文件起始  27

注释  27

字符串  27

布尔型  28

列表  28

字典  28

分行  29

剖析 playbook  30

play  31

task  32

模块  33

将它们整合在一起  34

执行 Ansible后发生变化了吗?跟踪主机状态  35

来点更酷炫的:添加 TLS支持  35

生成 TLS证书  36

变量  37

生成 Nginx配置模板 .. 39

handler  41

运行 playbook  42

第 3章 使用 inventory描述你的服务器  44

inventory文件  44

准备工作:创建多台 Vagrant虚拟机  45

inventory 行为参数  48

ansible_connection  49

ansible_shell_type  49

ansible_python_interpreter  49

ansible_*_interpreter  49

改变行为参数的默认值   50

群组  50

范例:部署一个 Django应用  51

别名和端口  54

群组的群组  54

为主机编号(宠物还是公牛 )  55

在 inventory内部的主机和组变量  55

在各自文件中的主机和组变量  57

动态 inventory  59

动态 inventory脚本接口  60

编写动态 inventory脚本  61

预装 inventory脚本  65

将 inventory分割到多个文件  65

使用 add_host和 group_by在运行时添加条目  65

add_host  65

group_by  67

第 4章 变量与 fact  69

在 playbook中定义变量  69

检查变量的值  70

registering 变量  70

fact  74

查看与某台服务器关联的所有 fact  75

查看 fact子集  75

任何模块都可以返回 fact  77

本地 fact  77

使用 set_fact定义新变量  79

内置变量  79

hostvars  80

inventory_hostname  80

groups  81

在命令行设置变量  81

优先级  82

第 5章 引入测试应用:Mezzanine  84

为什么向生产环境部署软件是一件复杂的事  84

PostgreSQL:数据库  88

Gunicorn:应用服务器   88

Nginx:Web服务器  89

Supervisor:进程管理器  90

第 6章 使用 Ansible部署 Mezzanine  91

列出 playbook中的 task  91

组织要部署的文件  92

变量和秘密变量  93

使用迭代(with_items)安装多个软件包  95

向任务中添加 Become语句  96

更新 apt缓存  97

使用 Git获取项目源码  98

将 Mezzanine和其他软件包安装到 virtualenv中  100

任务中的复杂参数:稍微跑个题  103

配置数据库  106

从模板生成 local_settings.py文件  107

运行 django-manage命令 . 110

在应用环境中运行定制的 Python脚本  111

设置服务配置文件  114

启用 Nginx配置文件  117

安装 TLS证书  117

安装 Twitter计划任务  119

playbook全文  119

在 Vagrant虚拟机上运行 playbook  123

故障排查  124

无法拉取 Git仓库代码   124

192.168.33.10.xip.io地址不可达  124

错误的请求(400)  125

将 Mezzanine部署到多台主机  125

第 7章 role:扩展你的 playbook  126

role的基本构成  126

范例: database和 mezzanine role  127

在你的 playbook中使用 role  127

pre-tasks和 post-tasks  129

用于部署数据库的 database role  130

用于部署 Mezzanine的 mezzanine role  132

使用 ansible-galaxy创建 role文件与目录  137

从属 role  138

Ansible Galaxy  139

Web界面  139

命令行工具  139

将你自己的 role发布到 Galaxy  140

第 8章 复杂的 playbook  141

处理不良行为的命令: changed_when和 failed_when . 141

过滤器  145

默认过滤器  145

用于注册变量的过滤器  145

应用于文件路径的过滤器  146

编写你自己的过滤器 . 147

lookup  148

file  149

pipe  150

env  150

password  150

template  151

csvfile  151

dnstxt  152

redis_kv  153

etcd  154

编写你自己的 lookup插件  155

更复杂的循环  155

with_lines  156

with_fileglob  156

with_dict  157

将循环结构用作 lookup插件  158

循环控制  158

设置变量名称  158

为输出增加标签  160

 include  161

动态引用  162

role include  162

block  164

利用 block进行异常处理  164

使用 Vault加密敏感数据  168

第 9章 自定义host、run和 handler.  170

通过模式匹配指定主机  170

限制运行的主机  171

在控制主机上运行 task  171

在涉及的主机以外的机器上运行 task  172

逐台主机运行  173

一次运行一批主机  174

只执行一次  175

运行策略  175

linear策略  176

free策略  177

高级 handler  179

Pre和 Post task中的 handler  179

flush handler  180

handlers listen  182

手动采集 fact  188

从主机获取 IP地址  189

第 10章 回调插件.  191

stdout插件  191

actionable 插件  192

debug插件  192

dense插件  193

json插件  193

minimal插件  194

oneline插件  195

selective 插件  195

skippy插件  195

其他插件  195

foreman插件  196

hipchat插件  196

jabber插件  197

junit插件  197

log_plays插件  198

logentries插件  198

logstash插件  198

mail插件  199

osx_say插件  199

profile_tasks插件  199

slack插件  200

timer插件  200

第 11章 让 Ansible快到飞起..201

SSH多路复用以及长连接保持  201

手动启动 SSH多路复用  202

Ansible中的 SSH多路复用配置  203

流水线  205

启用流水线  205

将主机配置为支持流水线  205

fact缓存  207

JSON文件作为 fact缓存后端  208

Redis作为 fact缓存后端  209

Memcached作为 fact缓存后端  209

并行  210

异步执行并发任务  211

第 12章 自定制模块  213

范例:检测远程服务器是否可达  213

使用 script模块而不是自己写模块  213

实现 can_reach模块  214

在哪里放置自定制模块  214

Ansible如何调用模块  215

用参数生成一个独立的 Python脚本(只限于 Python模块)  215

将模块复制到服务器 . 215

在服务器上创建一个参数文件(只限于非 Python模块)  215

调用模块  216

期望输出  216

Ansible的输出变量  217

用 Python实现模块  217

解析参数  219

获取参数的值  220

导入 AnsibleModule辅助类  220

参数选项  221

AnsibleModule的初始化参数  223

返回成功或失败  227

调用外部命令  227

检查模式 (演习模式 )   229

文档化你的模块  230

调试模块  231

使用 Bash实现模块  233

指定 Bash的解释器路径  234

示例模块  235

第 13章 Vagrant  236

Vagrant的便捷配置选项  236

端口转发和私有 IP地址  236

代理转发  238

Ansible置备器  238

置备器何时运行  239

由 Vagrant生成 inventory . 239

并行配置  240

指定群组  241

Ansible本地置备器  242

第 14章 Amazon.EC2.  244

术语  246

实例  246

Amazon 系统镜像  246

标签  247

指定认证凭据  247

环境变量  248

配置文件  248

必要条件: Boto Python 库   249

动态 inventory  249

inventory 缓存  251

其他配置项  252

自动生成群组  252

使用标签定义动态群组  253

把标签应用到现有资源  253

更好听的群组名  254

EC2 Virtual Private Cloud和 EC2 Classic  255

配置 ansible.cfg 支持使用 EC2  256

启动新的实例  256

EC2 密钥对  258

创建新的密钥  258

上传已有密钥  260

安全组  260

允许的 IP 地址  261

安全组端口  262

获取最新的 AMI  262

向群组中添加一个新的实例  264

等待服务器启动  266

创建实例的幂等性方法  267

全部加在一起  267

指定 Virtual Private Cloud  270

动态 inventory和 VPC   274

构建 AMI  274

使用 ec2_ami模块  274

使用 Packer  275

其他模块  279

第 15章 Docker  280

Docker与 Ansible配合案例  281

Docker应用的生命周期  282

样例应用: Ghost  283

连接到 Docker Daemon  283

在本地机器上运行容器  283

从 Dockerfile 构建镜像  284

在本机上对多个容器进行编排  286

推送镜像到 Docker registry   287

查询本地镜像  289

部署 Docker化的应用  291

后端: Postgres  291

前端  292

前端: Ghost  293

前端: Nginx  293

清除容器  294

直连容器  294

Ansible Container  296

Conductor  296

创建 Docker镜像  297

本地运行  301

发布镜像到 registry  302

将容器部署到生产环境  303

第 16章 调试 Ansible.playbook.  304

人类可读的错误信息  304

调试 SSH问题  305

debug模块  307

playbook调试器  307

assert模块  309

在执行前检查你的 playbook  311

语法检查  311

列出 host  311

列出 task  312

检测模式  312

显示文件变化  313

限制指定的 task运行  313

step  313

start-at-task  314

tags  314

第 17章 管理 Windows主机..316

连接到 Windows  316

PowerShell  317

Windows 模块  320

第一个 playbook  320

升级 Windows  321

添加本地用户  323

结论  326

第 18章 使用 Ansible管理网络设备  327

第 19章 Ansible.Tower:Ansible企业版.  346

(篇幅有限,完整目录请见本书)

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证