| 作者 |
| Lorin Hochstein(洛林 霍克斯坦 ) (瑞士)René Moser(勒内 莫泽) |
| 丛书名 |
| 出版社 |
| 电子工业出版社 |
| ISBN |
| 9787121351440 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 Ansible是近年来急速发展的开源配置管理工具。在Ansible之前,行业中已经有很多开源配置管理工具了,特别是大名鼎鼎的Puppet,简直是配置管理工具中的超级巨星。然而,Ansible依靠它的简单易用、“零依赖”以及弱抽象获得了无数开发者和运维工程师的青睐。遗憾的是,除了官方文档外,Ansible相关的优秀文档凤毛麟角,而本书恰恰就是为了缓解这一问题而编写的。作者在《奔跑吧Ansible(第2版):探索自动化配置与部署捷径》中演示了如何使用Ansible管理接近真实生产环境的案例。既展现了Ansible的强大功能,又能够帮助读者快速入门与上手,《奔跑吧Ansible(第2版):探索自动化配置与部署捷径》非常适合作为官方文档的补充或者搭配阅读。特别值得一提的是,《奔跑吧Ansible(第2版):探索自动化配置与部署捷径》第2版还增加了管理Windows服务器和网络设备方面的章节,并重新编写了Docker相关章节,及时地对第1版中的不足进行了改进。 |
| 目录 |
| 序 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 网络模块现状 327 所支持的网络供应商列表 . 328 网络设备的准备工作 328 支持 SSH身份验证 329 模块如何工作 331 我们的第一个 playbook 332 网络模块中的 inventory和变量 333 本地连接 335 连接配置 335 身份验证变量 336 保存配置 336 使用文件中的配置 338 模板,模板,模板 341 收集 fact 344 结论 345 第 19章 Ansible.Tower:Ansible企业版. 346 订阅模式 347 试用 Ansible Tower 347 Ansible Tower能解决什么问题 348 访问控制 348 项目管理 349 inventory管理 350 按作业模板运行作业 . 351 RESTful API 354 Ansible Tower的命令行 354 安装 355 创建用户 355 运行作业 357 以终为始 358 附录A SSH 359 附录B 在 EC2认证中使用 IAM.role 369 术语表 373 参考文献 379 |