随着技术的进步、业务需求的快速增长,一个运维人员通常要管理上百、上千台服务器,运维工作也变得重复、繁杂。将运维工作自动化,能够把运维人员从服务器的管理时间中释放出来,让运维工作变得简单、快速、准确。
换句话来讲,运维自动化是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,主要目的就是实现IT运维的质量,降低成本。
Python自动化运维能干什么?
开发各种自动化工具,定制开发各种开源软件;
帮助评估和优化业务技术架构;
开发公司的内部办公系统CRM、网站等;
成为全栈工程师。
为什么选择Python做自动化运维?
自动化运维关键问题:自动化、易实现、跨平台、轻量级,恰好这几点是Python的优势;
适合自动化运维编程语言的特点:丰富的第三方库、学习成本低、跨平台、轻量级,而Python就具备这样的优势。
总而言之,Python是非常适合自动化运维的编程语言。
那么该如何去学呢?
今天给大家推荐这本《Python自动化 技术与最佳实践》,该书就是关于怎么用python去实现自动化运维方面的,很经典,推荐给大家。主要分基础篇、高级篇和案例篇来讲,从各个实用模块到多个运维管理器详解,最后讲怎么去搭建自动化运维平台,很实用。
第一部分 基础篇
第1章 系统基础信息模块详解 2
1.1 系统性能信息模块psutil 2
1.1.1 获取系统性能信息 3
1.1.2 系统进程管理方法 6
1.2 实用的IP地址处理模块IPy 7
1.2.1 IP地址、网段的基本处理 8
1.2.2 多网络计算方法详解 9
1.3 DNS处理模块dnspython 11
1.3.1 模块域名解析方法详解 11
1.3.2 常见解析类型示例说明 12
1.3.3 实践:DNS域名轮循业务监控 14
第2章 业务服务监控详解 17
2.1 文件内容差异对比方法 17
2.1.1 示例1:两个字符串的差异对比 17
2.1.2 生成美观的对比HTML格式文档 19
2.1.3 示例2:对比Nginx配置文件差异 19
2.2 文件与目录差异对比方法 21
2.2.1 模块常用方法说明 21
2.2.2 实践:校验源与备份目录差异 25
2.3 发送电子邮件模块smtplib 27
2.3.1 smtplib模块的常用类与方法 27
2.3.2 定制个性化的邮件格式方法 28
2.3.3 定制常用邮件格式示例详解 29
2.4 探测Web服务质量方法 34
2.4.1 模块常用方法说明 35
2.4.2 实践:实现探测Web服务质量 36
第3章 定制业务质量报表详解 39
3.1 数据报表之Excel操作模块 39
3.1.1 模块常用方法说明 41
3.1.2 实践:定制自动化业务流量报表周报 48
3.2 Python与rrdtool的结合模块 50
3.2.1 rrdtool模块常用方法说明 51
3.2.2 实践:实现网卡流量图表绘制 53
3.3 生成动态路由轨迹图 56
3.3.1 模块常用方法说明 56
3.3.2 实践:实现TCP探测目标服务路由轨迹 57
第4章 Python与系统安全 60
4.1 构建集中式的病毒扫描机制 60
4.1.1 模块常用方法说明 61
4.1.2 实践:实现集中式的病毒扫描 61
4.2 实现高效的端口扫描器 64
4.2.1 模块常用方法说明 64
4.2.2 实践:实现高效的端口扫描 66
第二部分 高级篇
第5章 系统批量运维管理器pexpect详解 70
5.1 pexpect的安装 70
5.2 pexpect的核心组件 71
5.2.1 spawn类 71
5.2.2 run函数 74
5.2.3 pxssh类 75
5.3 pexpect应用示例 76
5.3.1 实现一个自动化FTP操作 76
5.3.2 远程文件自动打包并下载 77
第6章 系统批量运维管理器paramiko详解 79
6.1 paramiko的安装 79
6.2 paramiko的核心组件 81
6.2.1 SSHClient类 81
6.2.2 SFTPClient类 82
6.3 paramiko应用示例 85
6.3.1 实现密钥方式登录远程主机 85
6.3.2 实现堡垒机模式下的远程命令执行 85
6.3.3 实现堡垒机模式下的远程文件上传 88
第7章 系统批量运维管理器Fabric详解 91
7.1 Fabric的安装 91
7.2 fab的常用参数 92
7.3 fabfile的编写 93
7.3.1 全局属性设定 93
7.3.2 常用API 94
7.3.3 示例1:查看本地与远程主机信息 95
7.3.4 示例2:动态获取远程目录列表 96
7.3.5 示例3:网关模式文件上传与执行 97
7.4 Fabric应用示例 98
7.4.1 示例1:文件打包、上传与校验 98
7.4.2 示例2:部署LNMP业务服务环境 99
7.4.3 示例3:生产环境代码包发布管理 101
第8章 从“零”开发一个轻量级WebServer 104
8.1 Yorserver介绍 104
8.1.1 功能特点 104
8.1.2 配置文件 105
8.2 功能实现方法 106
8.2.1 HTTP缓存功能 107
8.2.2 HTTP压缩功能 111
8.2.3 HTTP SSL功能 111
8.2.4 目录列表功能 114
8.2.5 动态CGI功能 114
第9章 集中化管理平台Ansible详解 118
9.1 YAML语言 119
9.1.1 块序列描述 120
9.1.2 块映射描述 120
9.2 Ansible的安装 121
9.2.1 业务环境说明 121
9.2.2 安装EPEL 122
9.2.3 安装Ansible 122
9.2.4 Ansible配置及测试 122
9.2.5 配置Linux主机SSH无密码访问 123
9.3 定义主机与组规则 124
9.3.1 定义主机与组 124
9.3.2 定义主机变量 125
9.3.3 定义组变量 125
9.3.4 分离主机与组特定数据 126
......
第10章 集中化管理平台Saltstack详解 155
10.1 Saltstack的安装 156
10.1.1 业务环境说明 156
10.1.2 安装EPEL 156
10.1.3 安装Saltstack 156
10.1.4 Saltstack防火墙配置 157
10.1.5 更新Saltstack配置及安装校验 157
10.2 利用Saltstack远程执行命令 158
10.3 Saltstack常用模块及API 161
10.4 grains组件 166
10.4.1 grains常用操作命令 167
......
第11章 统一网络控制器Func详解 185
11.1 Func的安装 186
11.1.1 业务环境说明 186
11.1.2 安装Func 186
11.2 Func常用模块及API 189
11.2.1 选择目标主机 190
11.2.2 常用模块详解 190
11.3 自定义Func模块 194
11.4 非Python API接口支持 198
11.5 Func的Facts支持 199
第12章 Python大数据应用详解 202
12.1 环境说明 202
12.2 Hadoop部署 203
12.3 使用Python编写MapReduce 207
12.3.1 用原生Python编写MapReduce详解 208
12.3.2 用Mrjob框架编写MapReduce详解 212
12.4 实战分析 216
12.4.1 示例场景 216
12.4.2 网站访问流量统计 217
12.4.3 网站HTTP状态码统计 219
12.4.4 网站分钟级请求数统计 220
12.4.5 网站访问来源IP统计 221
12.4.6 网站文件访问统计 222
第三部分 案例篇
第13章 从零开始打造B/S自动化运维平台 226
13.1 平台功能介绍 226
13.2 系统构架设计 227
13.3 数据库结构设计 228
13.3.1 数据库分析 228
13.3.2 数据字典 228
13.3.3 数据库模型 229
13.4 系统环境部署 230
......
第14章 打造Linux系统安全审计功能 245
14.1 平台功能介绍 245
14.2 系统构架设计 246
14.3 数据库结构设计 247
14.3.1 数据库分析 247
14.3.2 数据字典 247
14.4 系统环境部署 248
14.4.1 系统环境说明 248
14.4.2 上报主机配置 248
14.5 服务器端功能设计 252
14.5.1 Django配置 252
14.5.2 功能实现方法 253
第15章 构建分布式质量监控平台 256
15.1 平台功能介绍 256
15.2 系统构架设计 257
15.3 数据库结构设计 258
15.3.1 数据库分析 258
15.3.2 数据字典 258
15.3.3 数据库模型 259
15.4 系统环境部署 260
15.4.1 系统环境说明 260
15.4.2 数据采集角色 260
15.4.3 rrdtool作业 261
15.5 服务器端功能设计 263
15.5.1 Django配置 263
15.5.2 业务增加功能 264
15.5.3 业务报表功能 266
第16章 构建桌面版C/S自动化运维平台 269
16.1 平台功能介绍 269
16.2 系统构架设计 270
16.3 数据库结构设计 271
16.3.1 数据库分析 271
16.3.2 数据字典 272
16.3.3 数据库模型 272
16.4 系统环境部署 273
16.4.1 系统环境说明 273
16.4.2 系统环境搭建 273
16.5 系统功能模块设计 274
16.5.1 用户登录模块 274
......
因为篇幅有限,这里只展示部分,有需要这份资料的,可以私信回复我111.