作品简介

本书主要介绍Ansible的核心源码与Playbook项目实战,共分为6章。第1章剖析Ansible1.1的源码,重点分析Ansible1.1的底层通信机制及其模块运行原理。第2章剖析Ansible1.9.6的源码,并对比它与Ansible1.1源码的不同之处,另外还会重点分析Playbook的执行逻辑。第3章介绍Ansible2.8中部分核心模块的使用并剖析其源码,同时还会介绍Playbook的常用语法。第4章剖析Ansible2.8的核心源码。首先进行基础功能模块的源码分析,如常量值定义、inventory文件解析和模板渲染等,接着对Ansible2.8中模块运行的全流程及剧本集的运行源码进行跟踪和分析。第5章深入学习Ansible源码,主要通过小版本的源码对比和GitHub上相关源码的Bug溯源两种方式,帮助读者熟悉深入学习Ansible源码的方式。第6章主要介绍基于Ansible的经典项目——ceph-ansible,并对该项目进行改造和优化。

作者:沈聪。

作品目录

  • 前言
  • 第1章 Ansible 1.1源码剖析
  • 1.1 Ansible 1.1的环境搭建
  • 1.1.1 Ansible 1.1测试环境搭建
  • 1.1.2 Ansible 1.1调试环境搭建
  • 1.2 Ansible 1.1的基本使用
  • 1.2.1 Ansible 1.1模块说明
  • 1.2.2 Ansible 1.1的常用模块
  • 1.2.3 编写Ansible 1.1的Playbook
  • 1.2.4 小结
  • 1.3 Ansible 1.1源码概览
  • 1.3.1 非源码文件与目录
  • 1.3.2 源码文件
  • 1.3.3 小结
  • 1.4 Ansible 1.1底层通信代码解析
  • 1.4.1 本地连接插件
  • 1.4.2 基于paramiko模块连接插件
  • 1.4.3 基于SSH命令连接插件
  • 1.4.4 小结
  • 1.5 ping模块的执行流程
  • 1.5.1 ansible命令
  • 1.5.2 runner目录下的核心源码
  • 1.5.3 ping模块的运行流程
  • 1.6 copy模块的执行流程
  • 1.6.1 copy模块的动作插件
  • 1.6.2 copy模块遗留问题的解决
  • 1.6.3 Ansible模块的核心步骤小结
  • 1.7 本章小结
  • 第2章 Ansible 1.9.6源码剖析
  • 2.1 Ansible 1.1和Ansible 1.9.6源码对比
  • 2.2 快速上手Ansible 1.9.6
  • 2.2.1 搭建Ansible 1.9.6测试环境
  • 2.2.2 Ansible 1.9.6中的部分模块剖析
  • 2.2.3 Ansible 1.9.6中Playbook的常用语法
  • 2.3 再探Ansible 1.9.6源码
  • 2.3.1 cache模块
  • 2.3.2 shell_plugins插件
  • 2.3.3 filter_plugins插件
  • 2.3.4 lookup_plugins插件
  • 2.3.5 辅助模块代码
  • 2.4 追踪Ansible 1.9.6的模块运行机制
  • 2.4.1 inventory目录
  • 2.4.2 Runner类及其方法
  • 2.5 解析Playbook的运行逻辑
  • 2.5.1 准备测试的Playbook项目
  • 2.5.2 相关类基础
  • 2.5.3 追踪ansible-playbook命令的运行流程
  • 2.6 本章小结
  • 第3章 Ansible 2常用模块与Playbook语法
  • 3.1 快速上手Ansible 2
  • 3.2 Ansible 2的命令行使用
  • 3.2.1 Ansible 2支持的常见选项
  • 3.2.2 Ansible 2中的常用模块及其源码解析
  • 3.2.3 Ansible 2模块的学习建议
  • 3.3 Ansible 2中的Playbook语法
  • 3.3.1 变量
  • 3.3.2 条件判断
  • 3.3.3 循环语句
  • 3.3.4 等待语句
  • 3.4 本章小结
  • 第4章 Ansible 2核心源码剖析
  • 4.1 Ansible 2.8核心源码初探
  • 4.1.1 日志打印
  • 4.1.2 默认配置
  • 4.1.3 inventory文件解析
  • 4.1.4 模板渲染
  • 4.1.5 插件
  • 4.2 Ansible 2.8模块运行的核心流程分析
  • 4.2.1 命令入口
  • 4.2.2 核心运行模块
  • 4.2.3 流程总结
  • 4.3 Ansible 2.8中Playbook的执行流程追踪
  • 4.3.1 Playbook命令执行入口
  • 4.3.2 核心代码追踪
  • 4.3.3 Playbook中部分语法的源码解析
  • 4.4 本章小结
  • 第5章 Ansible源码的演进跟踪
  • 5.1 Ansible 1.1到Ansible 1.2的演进之路
  • 5.2 Ansible 2.8中的部分Bug溯源
  • 5.2.1 Ansible 2.8中的ChangeLog
  • 5.2.2 Ansible 2.8中的Bug复现及其修复过程
  • 5.3 如何更深入地学习Ansible源码
  • 第6章 Playbook项目实战
  • 6.1 ceph-ansible项目介绍
  • 6.2 ceph-ansible实战
  • 6.2.1 使用ceph-ansible部署Ceph集群
  • 6.2.2 ceph-ansible的其他功能
  • 6.3 一个真实场景的改造
  • 6.3.1 业务需求
  • 6.3.2 手工实现
  • 6.3.3 改造ceph-ansible
  • 6.4 ceph-ansible项目源码探索
  • 6.4.1 追踪ceph-mon服务的搭建过程
  • 6.4.2 在CentOS 7下部署Ceph集群的简化版Playbook
  • 6.4.3 小结
展开全部