本书在中国运维领域将有"划时代"的重要意义:一方面,这是国内及时本从纵、深和实践角度探讨Python在运维领域应用的著作;一方面本书的作者是中国运维领域的"偶像级"人物,本书是他在天涯社区和腾讯近10年工作经验的结晶。因为作者实战经验丰富,所以能高屋建瓴、直指痛处,围绕Python自动化运维这个主题,不仅详细介绍了系统基础信息、服务监控、数据报表、系统安全等基础模块,而且深入讲解了自动化操作、系统管理、配置管理、集群管理及大数据应用等高级功能。最重要的是,完整重现了4个来自实际生产环境的不同功能运维平台的综合案例,展示了完整的平台架构及开发流程。
全书一共16章:基础篇(1-4章)详细介绍了系统基础信息、业务服务监控、定制业务质量报表、系统安全等基础和常用模块;高级篇(5-12章)深入讲解了批量运维管理器pexpect、paramiko、Fabric,集中化管理平台Ansible、Saltstack,统一网络控制器Func等高级功能,涵盖自动化操作、系统管理、配置管理、集群管理及大数据应用等主题;案例篇(13-16章)详细介绍了4个来自不同平台的运维案例,如何从零开始打造一个B/S自动化运维平台、如何打造Linux系统安全审计功能、如何构建分布式质量监控平台、如何构建桌面版C/S自动化运维平台,这4个案例均来自实际生产环境。
中国运维领域偶像级专家、腾讯高级系统工程师在天涯社区和腾讯近10年运维实践的经验和智慧结晶不仅详尽介绍了服务监控、数据报表、系统安全等基础模块,而且深入讲解了自动化操作、系统管理、配置管理、集群管理及大数据应用等高级功能,包含4个完整的综合案例
刘天斯
中国运维领域的偶像级人物,从事系统运维工作近10年。现就职于腾讯,担任高级系统工程师,负责腾讯CDN的运维工作;曾就职于天涯社区,担任架构师兼高级系统工程师。热衷开源技术的研究,包括系统架构、运维开发、负载均衡、缓存技术、数据库、分布式存储及云计算等领域,擅长大规模集群的运维工作。崇尚"技术让工作变得更简单"的理念,开发并维护着"天涯LVS管理系统"、"天涯服务器管理系统"、"在线图片处理平台"、"Varnish缓存推送平台"等7个开源项目。对Python如何在运维中发挥作用进行了深入研究,而且在腾讯内部开展了大量实践,基于Python开发了集群自动化操作工具yorauto,在腾讯各大事业群广泛使用,同时入选公司精品推荐组件。
曾多次荣获新浪技术、51CTO和ITPUB等社区评选的"博客专家"称号。个人运维着博客"运维进行时,从2007年至今,笔耕不缀,坚持分享自己在运维领域的经验和智慧。拥有发明专利4项。
本书赞誉 前言 及时部分 基础篇 第1章 系统基础信息模块详解 1.1 系统性能信息模块 1.1.1 获取系统性能信息 1.1.2 系统进程管理方法 1.2 实用的IP地址处理模块 1.2.1 IP地址、网段的基本处理 1.2.2 多网络计算方法详解 1.3 DNS处理模块dns 1.3.1 模块域名解析方法详解 1.3.2 常见解析类型示例说明 1.3.3 实践:DNS域名轮循业务监控 第2章 业务服务监控详解 2.1 文件内容差异对比方法 2.1.1 示例1:两个字符串的差异对比 2.1.2 生成美观的对比HTML格式文档 2.1.3 示例2:对比Nginx配置文件差异 2.2 文件与目录差异对比方法 2.2.1 模块常用方法说明 2.2.2 实践:校验源与备份目录差异 2.3 发送电子邮件模块sm 2.3.1 smtplib模块的常用类与方法 2.3.2 定制个性化的邮件格式方法 2.3.3 定制常用邮件格式示例详解 2.4 探测Web服务质量方法 2.4.1 模块常用方法说明 2.4.2 实践:实现探测Web服务质量 第3章 定制业务质量报表详解 3.1 数据报表之Excel操作模块 3.1.1 模块常用方法说明 3.1.2 实践:定制自动化业务流量报表周报 3.2 Python与rrdtool的结合模块 3.2.1 rrdtool模块常用方法说明 3.2.2 实践:实现网卡流量图表绘制 3.3 生成动态路由轨迹图 3.3.1 模块常用方法说明 3.3.2 实践:实现TCP探测目标服务路由轨迹 第4章 Python与系统安全 4.1 构建集中式的病毒扫描机制 4.1.1 模块常用方法说明 4.1.2 实践:实现集中式的病毒扫描 4.2 实现高效的端口扫描器 4.2.1 模块常用方法说明 4.2.2 实践:实现高效的端口扫描 第二部分 高级篇 第5章 系统批量运维管理器pexpect详解 5.1 pexpect的安装 5.2 pexpect的核心组件 5.2.1 spawn类 5.2.2 run函数 5.2.3 pxssh类 5.3 pexpect应用示例 5.3.1 实现一个自动化FTP操作 5.3.2 远程文件自动打包并下载 第6章 系统批量运维管理器paramiko详解 6.1 paramiko的安装 6.2 paramiko的核心组件 6.2.1 SSHClient类 6.2.2 SFTPClient类 6.3 paramiko应用示例 6.3.1 实现密钥方式登录远程主机 6.3.2 实现堡垒机模式下的远程命令执行 6.3.3 实现堡垒机模式下的远程文件上传 第7章 系统批量运维管理器Fabric详解 7.1 Fabric的安装 7.2 fab的常用参数 7.3 fabfile的编写 7.3.1 全局属性设定 7.3.2 常用 7.3.3 示例1:查看本地与远程主机信息 7.3.4 示例2:动态获取远程目录列表 7.3.5 示例3:网关模式文件上传与执行 7.4 Fabric应用示例 7.4.1 示例1:文件打包、上传与校验 7.4.2 示例2:部署LNMP业务服务环境 7.4.3 示例3:生产环境代码包管理 第8章 从"零"开发一个轻量级WebSe 8.1 Yorserver介绍 8.1.1 功能特点 8.1.2 配置文件 8.2 功能实现方法 8.2.1 HTTP缓存功能 8.2.2 HTTP压缩功能 8.2.3 HTTP SSL功能 8.2.4 目录列表功能 8.2.5 动态CGI功能 第9章 集中化管理平台Ansible详解 9.1 YAML语言 9.1.1 块序列描述 9.1.2 块映射描述 9.2 Ansible的安装 9.2.1 业务环境说明 9.2.2 安装 9.2.3 安装Ans 9.2.4 Ansible配置及测试 9.2.5 配置Linux主机SSH无密码访问 9.3 定义主机与组规则 9.3.1 定义主机与组 9.3.2 定义主机变量 9.3.3 定义组变量 9.3.4 分离主机与组特定数据 9.4 匹配目标 9.5 Ansible常用模块及 9.6 playbook介绍 9.6.1 定义主机与用户 9.6.2 任务列表 9.6.3 执行play 9.7 playbook角色与包含声明 9.7.1 包含文件,鼓励复用 9.7.2 角色 9.8 获取远程主机系统信息:F 9.9 变量 9.9.1 Jinja2过滤器 9.9.2 本地F 9.9.3 注册变量 9.10 条件语句 9.11 循环 9.12 示例讲解 第10章 集中化管理平台Saltstack详解 10.1 Saltstack的安装 10.1.1 业务环境说明 10.1.2 安装EPEL 10.1.3 安装Saltstack 10.1.4 Saltstack防火墙配置 10.1.5 更新Saltstack配置及安装校验 10.2 利用Saltstack远程执行命令 10.3 Saltstack常用模块及 10.4 grains组件 10.4.1 grains常用操作命令 10.4.2 定义grains数据 10.5 pillar组件 10.5.1 pillar的定义 10.5.2 pillar的使用 10.6 state介绍 10.6.1 state的定义 10.6.2 state的使用 10.7 示例:基于Saltstack实现的配置集中化管理 10.7.1 环境说明 10.7.2 主控端配置说明 10.7.3 配置p 10.7.4 配置 10.7.5 校验结果 第11章 统一网络控制器Func详解 11.1 Func的安装 11.1.1 业务环境说明 11.1.2 安装Func 11.2 Func常用模块及 11.2.1 选择目标主机 11.2.2 常用模块详解 11.3 自定义Func模块 11.4 非Python API接口支持 11.5 Func的Facts支持 第12章 Python大数据应用详解 12.1 环境说明 12.2 Hadoop部署 12.3 使用Python编写MapReduce 12.3.1 用原生Python编写MapReduce详解 12.3.2 用Mrjob框架编写MapReduce详解 12.4 实战分析 12.4.1 示例场景 12.4.2 网站访问流量统计 12.4.3 网站HTTP状态码统计 12.4.4 网站分钟级请求数统计 12.4.5 网站访问来源IP统计 12.4.6 网站文件访问统计 第三部分 案例篇 第13章 从零开始打造B/S自动化运维平台 13.1 平台功能介绍 13.2 系统构架设计 13.3 数据库结构设计 13.3.1 数据库分析 13.3.2 数据字典 13.3.3 数据库模型 13.4 系统环境部署 13.4.1 系统环境说明 13.4.2 系统平台搭建 13.4.3 开发环境优化 13.5 系统功能模块设计 13.5.1 前端数据加载模块 13.5.2 数据传输模块设计 13.5.3 平台功能模块扩展 第14章 打造Linux系统安全审计功能 14.1 平台功能介绍 14.2 系统构架设计 14.3 数据库结构设计 14.3.1 数据库分析 14.3.2 数据字典 14.4 系统环境部署 14.4.1 系统环境说明 14.4.2 上报主机配置 14.5 服务器端功能设计 14.5.1 Django配置 14.5.2 功能实现方法 第15章 构建分布式质量监控平台 15.1 平台功能介绍 15.2 系统构架设计 15.3 数据库结构设计 15.3.1 数据库分析 15.3.2 数据字典 15.3.3 数据库模型 15.4 系统环境部署 15.4.1 系统环境说明 15.4.2 数据采集角色 15.4.3 rrdtool作业 15.5 服务器端功能设计 15.5.1 Django配置 15.5.2 业务增加功能 15.5.3 业务报表功能 第16章 构建桌面版C/S自动化运维平台 16.1 平台功能介绍 16.2 系统构架设计 16.3 数据库结构设计 16.3.1 数据库分析 16.3.2 数据字典 16.3.3 数据库模型 16.4 系统环境部署 16.4.1 系统环境说明 16.4.2 系统环境搭建 16.5 系统功能模块设计 16.5.1 用户登录模块 16.5.2 系统配置功能 16.5.3 服务器分类模块 16.5.4 系统升级功能 16.5.5 客户端模块编写 16.5.6 执行功能模块 16.5.7 平台程序
及时部分
基础篇
■第1章系统基础信息模块详解
■第2章业务服务监控详解
■第3章定制业务质量报表详解
■第4章Python与系统安全
第1章
系统基础信息模块详解
系统基础信息采集模块作为监控模块的重要组成部分,能够帮助运维人员了解当前系统的健康程度,同时也是衡量业务的服务质量的依据,比如系统资源吃紧,会直接影响业务的服务质量及用户体验,另外获取设备的流量信息,也可以让运维人员更好地评估带宽、设备资源是否应该扩容。本章通过运用Python第三方系统基础模块,可以轻松获取服务关键运营指标数据,包括Linux基本性能、块设备、网卡接口、系统信息、网络地址库等信息。在采集到这些数据后,我们就可以多方位了解系统服务的状态,再结合告警机制,可以在及时时间响应,将异常出现在苗头时就得以处理。
本章通过具体的示例来帮助读者学习、理解并掌握。在本章接下来的内容当中,我们的示例将在一个连续的Python交互环境中进行。
进入Python终端,执行python命令进入交互式的Python环境,像这样:
# python
Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type ""help"", ""copyright"", ""credits"" or ""license"" for more information.
>>>
1.1系统性能信息模块psutil
psutil是一个跨平台库(code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统,支持从2.4到3.4的Python版本,目前近期版本为2.0.0。通常我们获取操作系统信息往往采用编写shell来实现,如获取当前物理内存总大小及已使用大小,shell命令如下:
物理内存total值: free -m | grepMem | awk '{print $2}'
物理内存used值: free -m | grepMem | awk '{print $3}'
相比较而言,使用psutil库实现则更加简单明了。psutil大小单位一般都采用字节,如下:
>>> import psutil
>>>mem = psutil.virtual_memory()
>>>mem.total,mem.used
(506277888L, 500367360L)
psutil的源码安装步骤如下:
#wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz --no-check-certificate
# tar -xzvf psutil-2.0.0.tar.gz
# cd psutil-2.0.0
# python setup.py install
非常好的书,做活动时买的,很实用!
书买了,还没时间看,暂时不评论
为公司同事采购的,包装很好,快
包装完好,物流很快!
不错不错不错不错不错不错不错不错不错不错
总的来,拿到手上,有点失望的感觉!没亮点,内容不深不浅,可能也跟自身知识面或深度有关。但,作为一名读者,我期待第二版,第三版可以做得更好些。
感觉前几章一般,中间部分基本上官方都有介绍。期待有更好的作品...
我觉得还是比较简单 感觉国人写的书还是没有老外写的好,我觉得这本书内容比较少,但是一点都不便宜。
很不错,很多有与书配套的项目代码,还没仔细看
这本书是最外层的,包裹有一个角破损了,导致这本书的一个角皱褶了,我表示不爽
很好的一本工具书,蛮好的。但需要一定的基础看,不然作用不大,真的。蛮好
凌晨下的单,现在就拿到了,一个字“真快”,书摸着很有感觉,闻着还不错。。。
很喜欢,快递现在改成顺丰,送货速度也很快,非常满意!!!
此为专业书籍,对于我们初学者还是很有帮助的
书还不错,可以学到很多知识,就是有些错误,希望能尽快改正
第一次系当当购物,书包装很好,物流比预计提前了一天到,愉快的一次购物
这本书写的不错,是一位从事运维工作多年的员工写的,值得一看哦~
包装袋已磨破多个角边,书本也遭殃,几乎沦落成破书,要是遇上下雨天,这书肯定泡汤。新书变成这样实在惋惜,第一次给网购物品评0分。希望能改善。书本内容还没看,评分无效。
这是一本挺不错的书,需要有一定的python的基础和运维基础。
外包装粗糙,一个轻塑料袋都破了,书变形了有折痕,我就怀疑了,当当穷的不会改善一下包装吗,快递都乱扔乱放,能不坏吗
这本书其实更多的是贴近生产环境,走进自动化,对于Python,ansible,saltstack,pexpect、paramiko、Fabric进行了分析及应用场景介绍,最后使用实例来进行阐述并带你实现自动化运维,思路很明确。总体来说这本书还是有可欣赏的价值(并非购书价格),但是若想深入研究这些自动化工具这本书不太适合,请转向官方文档。
python很重要的一个使用方面,值得运维工程师好好研读
不错,很好的一本入门python的自动化运维书籍
python自动化运维,个人觉得不仅仅是运维人员应该看,开发人员,尤其是linux开发人员更应该学习学习,能极大的提高工作效率
python 自动化运维这本书一直是想买的书,双十一震的很合算,需要的可以考虑,性价比真不错啊。纸质也不错。送来的时候包装严实,值得信任。
关于python自动化运维就只有这本书,可以买来看看
以前就了解过天斯,他的书果然不一般,刚才翻看了一遍,很多实战的应用,前面是介绍各个工具、各种类与函数的使用,后面以一个web控制端整合到前面所讲的知识,让我们去了解与实践自动化运维提供了很有用的帮助,值得一看。