×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
奔跑吧ANSIBLE(第2版)/探索自动化配置与部署捷径

奔跑吧ANSIBLE(第2版)/探索自动化配置与部署捷径

1星价 ¥58.3 (4.9折)
2星价¥58.3 定价¥119.0

温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>

图文详情
  • ISBN:9787121351440
  • 装帧:简裝本
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:412
  • 出版时间:2017-02-01
  • 条形码:9787121351440 ; 978-7-121-35144-0

本书特色

适读人群 :软件开发;系统管理者。在当下百家争鸣的配置管理工具领域中,Ansible有着独特的优势:原生即轻量。你不需要在要管理的机器上安装任何软件,并且它的学习曲线非常平缓。在第2版中,不管你是要将代码部署到生产环境的开发者还是寻求更好的自动化解决方案的系统管理员,这本使用指南都将帮助你快速地在生产环境中使用这个工具。
作者Lorin Hochstein和René Moser示范了如何编写playbook(Ansible中的配置管理脚本),如何管理远程服务器。除此之外,他们还会带领你探索这个工具的潜在法宝:内置模块。通过阅读本书,你会发现,Ansible拥有你所需要的功能的同时,还简单得超出你的想象。
■ 理解Ansible区别于其他配置管理系统的特点
■ 使用YAML语法编写你自己的playbook
■ 部署一个复杂应用的完整范例
■ 管理Windows服务器和自动化配置网络设备
■ 将应用部署到AMZN EC2或其他云平台
■ 使用Ansible创建Docker镜像并部署Docker容器
建议从头开始阅读本书,后面的章节会建立在前面章节的基础之上。因为它是以教程风格编写的,所以你可以在自己的机器上跟随讲解一步步操作。并且,大多数实例都与Web应用程序相关,对于生产环境非常有借鉴意义。

内容简介

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

目录

序 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


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

展开全部

作者简介

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的自动化平台。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航