Python自动化运维 技术与最佳实践pdf

图书网 2020年10月12日21:21:5437381

Python自动化运维 技术与最佳实践 作者:刘天斯

Python自动化运维 技术与最佳实践 出版社:机械工业出版社

Python自动化运维 技术与最佳实践 内容简介

本书在中国运维领域将有“划时代”的重要意义:一方面,这是国内一本从纵、深和实践角度探讨Python在运维领域应用的著作;一方面本书的作者是中国运维领域的“偶像级”人物,本书是他在天涯社区和腾讯近10年工作经验的结晶。因为作者实战经验丰富,所以能高屋建瓴、直指痛处,围绕Python自动化运维这个主题,不仅详细介绍了系统基础信息、服务监控、数据报表、系统安全等基础模块,而且深入讲解了自动化操作、系统管理、配置管理、集群管理及大数据应用等高级功能。重要的是,完整重现了4个来自实际生产环境的不同功能运维平台的综合案例,展示了完整的平台架构及开发流程。

全书一共16章:基础篇(1-4章)详细介绍了系统基础信息、业务服务监控、定制业务质量报表、系统安全等基础和常用模块;高级篇(5-12章)深入讲解了批量运维管理器pexpect、paramiko、Fabric,集中化管理平台Ansible、Saltstack,统一网络控制器Func等高级功能,涵盖自动化操作、系统管理、配置管理、集群管理及大数据应用等主题;案例篇(13-16章)详细介绍了4个来自不同平台的运维案例,如何从零开始打造一个B/S自动化运维平台、如何打造Linux系统安全审计功能、如何构建分布式质量监控平台、如何构建桌面版C/S自动化运维平台,这4个案例均来自实际生产环境。

Python自动化运维 技术与最佳实践 目录

前言

第一部分 基础篇

第1章 系统基础信息模块详解

1.1 系统性能信息模块psutil

1.1.1 获取系统性能信息

1.1.2 系统进程管理方法

1.2 实用的IP地址处理模块IPy

1.2.1 IP地址、网段的基本处理

1.2.2 多网络计算方法详解

1.3 DNS处理模块dnspython

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 发送电子邮件模块smtplib

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 常用API

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章 从"零"开发一个轻量级WebServer

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 安装EPEL

9.2.3 安装Ansible

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常用模块及API

9.6 playbook介绍

9.6.1 定义主机与用户

9.6.2 任务列表

9.6.3 执行playbook

9.7 playbook角色与包含声明

9.7.1 包含文件,鼓励复用

9.7.2 角色

9.8 获取远程主机系统信息:Facts

9.9 变量

9.9.1 Jinja2过滤器

9.9.2 本地Facts

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常用模块及API

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 配置pillar

10.7.4 配置state

10.7.5 校验结果

第11章 统一网络控制器Func详解

11.1 Func的安装

11.1.1 业务环境说明

11.1.2 安装Func

11.2 Func常用模块及API

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 平台程序发布

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是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(包括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 --no-check-certificate

# tar -xzvf psutil-2.0.0.tar.gz

# cd psutil-2.0.0

# python setup.py install

图书网:Python自动化运维 技术与最佳实践pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

  • 我的微信
  • 扫一扫加好友
  • weinxin
  • 微信公众号
  • 扫一扫关注
  • weinxin
C++捷径教程 第3版pdf 程序设计

C++捷径教程 第3版pdf

C++捷径教程 第3版 作者:(美) Herbert Schildt C++捷径教程 第3版 出版社:清华大学出版社 C++捷径教程 第3版 内容简介 本书是程序设计大师Herbert Schildt...
深入理解JavaScript特性pdf 程序设计

深入理解JavaScript特性pdf

本书从实际开发角度介绍ES6及后续更新版本特性,以循序渐进、通俗易懂的方式讲解各种复杂的技术,比如异步控制流、声明对象及函数的使用等,并从实践角度提供了许多建议,既能帮助广大前端开...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:3   其中:访客  3   博主  0
    • QQ昵称
      QQ昵称 1

      感谢无私的分享,必须认真学习,对得起这份执着和热爱

      • kall
        kall 0

        感谢分享,下载来看看。 啊

        • wilson
          wilson 0

          感谢大佬的资源,上班正需要这个,必须实践起来