书籍详情
Python自动化运维实战
作者:巴塞姆·,阿利(Bassem Aly) 著,王文峰,袁洪艳 译
出版社:人民邮电出版社
出版时间:2020-04-01
ISBN:9787115530189
定价:¥79.00
购买这本书可以去
内容简介
《Python自动化运维实战》介绍了如何通过Python来自动完成服务器的配置与管理,自动完成系统的管理任务(如用户管理、数据库管理和进程管理),以及完成这些工作所需的模块、库和工具。此外,本书还讲述了如何使用Python脚本自动执行测试,如何通过Python在云基础设施和虚拟机上自动执行任务,如何使用基于Python的安全工具自动完成与安全相关的任务。本书适合运维人员和开发人员阅读,也可作为相关专业人士的参考书。
作者简介
Bassem Aly是Juniper Networks公司经验丰富的SDN/NFV解决方案顾问,过去9年来一直在电信行业工作。他擅长使用不同的自动化工具以及DevOps框架设计和实现下一代自动化解决方案。此外,他在使用OpenStack构建和部署电信应用程序方面拥有丰富的经验,同时他还负责网络自动化和网络编程方面的企业培训。
目录
第 1章 搭建Python环境 1
1.1 Python简介 2
1.1.1 Python版本 3
1.1.2 安装Python 4
1.2 安装PyCharm IDE 6
1.3 PyCharm的高级功能 12
1.3.1 调试代码 13
1.3.2 重构代码 14
1.3.3 从GUI安装包 16
1.4 小结 17
第 2章 常用的自动化库 18
2.1 Python包 19
2.2 常用Python库 20
2.2.1 与网络相关的Python库 21
2.2.2 与系统和云相关的Python库 22
2.3 查看模块源代码 23
2.4 小结 28
第3章 搭建网络实验室环境 29
3.1 技术要求 30
3.2 需要自动化网络的时间和原因 30
3.3 自动化的两种方式——屏幕抓取与API 31
3.4 使用Python进行网络自动化的原因 31
3.5 网络自动化的未来 33
3.6 搭建网络实验室 34
3.7 准备工作——安装EVE-NG 34
3.7.1 在VMware Workstation上安装 35
3.7.2 通过VMware ESXi安装 36
3.7.3 通过Red Hat KVM安装 38
3.7.4 访问EVE-NG 39
3.7.5 安装EVE-NG客户端工具包 42
3.7.6 在EVE-NG中加载网络镜像 43
3.8 创建企业网络拓扑 43
3.8.1 添加新节点 44
3.8.2 连接节点 45
3.9 小结 47
第4章 使用Python管理网络设备 48
4.1 技术要求 49
4.1.1 Python和SSH 49
4.1.2 Paramiko模块 50
4.1.3 netmiko模块 52
4.2 在Python中使用Telnet协议 59
4.3 使用netaddr处理IP地址和网络 64
4.3.1 安装netaddr 65
4.3.2 使用netaddr的方法 65
4.4 简单的用例 67
4.4.1 备份设备配置 68
4.4.2 创建访问终端 70
4.4.3 从Excel工作表中读取数据 72
4.4.4 其他用例 75
4.5 小结 75
第5章 从网络设备中提取数据 76
5.1 技术要求 77
5.2 解释器 77
5.3 正则表达式 78
5.4 使用CiscoConfParse库校验配置 86
5.4.1 CiscoConfParse库 86
5.4.2 支持的供应商 87
5.4.3 安装CiscoConfParse库 88
5.4.4 使用CiscoConfParse库 88
5.5 使用Matplotlib库可视化返回的数据 91
5.5.1 安装Matplotlib库 91
5.5.2 使用Matplotlib库 92
5.5.3 使用Matplotlib库可视化SNMP 94
5.6 小结 96
第6章 使用Python和Jinja2配置生成器 97
6.1 YAML简介 98
6.2 使用Jinja2建立配置模板 102
6.2.1 从文件系统中读取模板 109
6.2.2 在Jinja2中使用循环和条件 111
6.3 小结 119
第7章 并行执行Python脚本 120
7.1 Python脚本在计算机中运行的方式 121
7.2 multiprocessing库 123
7.2.1 开始使用multiprocessing库 123
7.2.2 进程间的相互通信 126
7.3 小结 127
第8章 准备实验室环境 128
8.1 获取Linux操作系统 129
8.1.1 下载CentOS 129
8.1.2 下载Ubuntu 130
8.2 在虚拟机管理程序上创建自动化虚拟机 131
8.2.1 在VMware ESXi上创建Linux虚拟机 131
8.2.2 使用KVM创建Linux虚拟机 135
8.3 开始使用Cobbler 139
8.3.1 Cobbler的工作原理 139
8.3.2 在自动化服务器上安装Cobbler 141
8.3.3 通过Cobbler检查服务器硬件 144
8.4 小结 149
第9章 使用subprocess库 150
9.1 subprocess库中的Popen() 151
9.2 stdin、stdout和stderr 154
9.3 subprocess库中的call()函数 156
9.4 小结 157
第 10章 使用Fabric运行系统管理任务 158
10.1 技术要求 159
10.2 Fabric库 159
10.2.1 安装Fabric库 160
10.2.2 Fabric库中的操作 161
10.3 运行第 一个Fabric文件 164
10.3.1 有关fab工具的更多信息 167
10.3.2 使用Fabric检查系统健康状态 168
10.4 其他有用的Fabric特性 173
10.4.1 Fabric角色 173
10.4.2 Fabric上下文管理器 175
10.5 小结 176
第 11章 生成系统报告和监控系统 177
11.1 从Linux系统中收集数据 178
11.1.1 通过邮件发送收集的数据 183
11.1.2 使用time和date模块 186
11.1.3 定期运行脚本 187
11.2 在Ansible中管理用户 188
11.2.1 在Linux系统中通过Ansible管理用户 188
11.2.2 在Windows系统中通过Ansible管理用户 190
11.3 小结 190
第 12章 与数据库交互 191
12.1 在自动化服务器上安装MySQL 192
12.1.1 安装后的安全问题 193
12.1.2 验证数据库的安装 194
12.2 从Python中访问MySQL数据库 195
12.2.1 查询数据库 197
12.2.2 向数据库中插入数据 198
12.3 小结 201
第 13章 使用Ansible管理系统 202
13.1 Ansible术语 203
13.2 在Linux系统上安装Ansible 205
13.2.1 在RHEL系统和CentOS上安装Ansible 205
13.2.2 在Ubuntu系统上安装Ansible 205
13.3 在即席模式下使用Ansible 206
13.4 创建第 一个playbook 210
13.5 Ansible的条件、处理程序和循环 212
13.5.1 设计条件 213
13.5.2 在Ansible中创建循环 215
13.5.3 使用处理程序触发任务 216
13.6 使用事实数据 218
13.7 使用Ansible模板 219
13.8 小结 221
第 14章 创建和管理VMware虚拟机 222
14.1 设置环境 223
14.2 使用Jinja2生成VMX文件 225
14.2.1 创建VMX模板 226
14.2.2 处理Excel工作表中的数据 229
14.2.3 生成VMX文件 231
14.3 VMware Python客户端 238
14.3.1 安装PyVmomi库 239
14.3.2 使用PyVmomi库的第 一步 240
14.3.3 更改虚拟机的状态 244
14.3.4 更多内容 246
14.4 使用playbook管理实例 246
14.5 小结 249
第 15章 和OpenStack API交互 250
15.1 RESTful Web服务 251
15.2 设置环境 253
15.2.1 安装rdo-OpenStack包 253
15.2.2 生成answer文件 254
15.2.3 编辑answer文件 254
15.2.4 运行packstack 255
15.2.5 访问OpenStack GUI 255
15.3 向OpenStack keystone发送请求 256
15.4 用Python创建实例 259
15.4.1 创建镜像 259
15.4.2 分配类型模板 261
15.4.3 创建网络和子网 262
15.4.4 启动实例 265
15.5 使用Ansible管理OpenStack实例 266
15.5.1 Shade和Ansible的安装 266
15.5.2 创建Ansible
playbook 267
15.6 小结 270
第 16章 使用Python和Boto3自动化AWS 271
16.1 AWS Python模块 272
16.2 管理AWS实例 274
16.3 自动化AWS S3服务 277
16.3.1 创建存储桶 277
16.3.2 上传文件到存储桶 278
16.3.3 删除存储桶 278
16.4 小结 279
第 17章 使用Scapy框架 280
17.1 Scapy 281
17.2 安装Scapy 282
17.2.1 在基于UNIX的系统上安装Scapy 282
17.2.2 Windows系统和macOS对Scapy的支持情况 283
17.3 使用Scapy生成报文和网络流 283
17.4 抓取和重播报文 288
17.4.1 向报文注入数据 290
17.4.2 报文嗅探 292
17.4.3 将报文写入pcap文件 294
17.5 小结 294
第 18章 使用Python编写网络扫描程序 295
18.1 网络扫描程序 296
18.2 使用Python编写网络扫描程序 296
18.2.1 增加功能 297
18.2.2 扫描服务 300
18.3 在GitHub上共享代码 303
18.3.1 创建GitHub账户 304
18.3.2 创建和推送代码 304
18.4 小结 310
1.1 Python简介 2
1.1.1 Python版本 3
1.1.2 安装Python 4
1.2 安装PyCharm IDE 6
1.3 PyCharm的高级功能 12
1.3.1 调试代码 13
1.3.2 重构代码 14
1.3.3 从GUI安装包 16
1.4 小结 17
第 2章 常用的自动化库 18
2.1 Python包 19
2.2 常用Python库 20
2.2.1 与网络相关的Python库 21
2.2.2 与系统和云相关的Python库 22
2.3 查看模块源代码 23
2.4 小结 28
第3章 搭建网络实验室环境 29
3.1 技术要求 30
3.2 需要自动化网络的时间和原因 30
3.3 自动化的两种方式——屏幕抓取与API 31
3.4 使用Python进行网络自动化的原因 31
3.5 网络自动化的未来 33
3.6 搭建网络实验室 34
3.7 准备工作——安装EVE-NG 34
3.7.1 在VMware Workstation上安装 35
3.7.2 通过VMware ESXi安装 36
3.7.3 通过Red Hat KVM安装 38
3.7.4 访问EVE-NG 39
3.7.5 安装EVE-NG客户端工具包 42
3.7.6 在EVE-NG中加载网络镜像 43
3.8 创建企业网络拓扑 43
3.8.1 添加新节点 44
3.8.2 连接节点 45
3.9 小结 47
第4章 使用Python管理网络设备 48
4.1 技术要求 49
4.1.1 Python和SSH 49
4.1.2 Paramiko模块 50
4.1.3 netmiko模块 52
4.2 在Python中使用Telnet协议 59
4.3 使用netaddr处理IP地址和网络 64
4.3.1 安装netaddr 65
4.3.2 使用netaddr的方法 65
4.4 简单的用例 67
4.4.1 备份设备配置 68
4.4.2 创建访问终端 70
4.4.3 从Excel工作表中读取数据 72
4.4.4 其他用例 75
4.5 小结 75
第5章 从网络设备中提取数据 76
5.1 技术要求 77
5.2 解释器 77
5.3 正则表达式 78
5.4 使用CiscoConfParse库校验配置 86
5.4.1 CiscoConfParse库 86
5.4.2 支持的供应商 87
5.4.3 安装CiscoConfParse库 88
5.4.4 使用CiscoConfParse库 88
5.5 使用Matplotlib库可视化返回的数据 91
5.5.1 安装Matplotlib库 91
5.5.2 使用Matplotlib库 92
5.5.3 使用Matplotlib库可视化SNMP 94
5.6 小结 96
第6章 使用Python和Jinja2配置生成器 97
6.1 YAML简介 98
6.2 使用Jinja2建立配置模板 102
6.2.1 从文件系统中读取模板 109
6.2.2 在Jinja2中使用循环和条件 111
6.3 小结 119
第7章 并行执行Python脚本 120
7.1 Python脚本在计算机中运行的方式 121
7.2 multiprocessing库 123
7.2.1 开始使用multiprocessing库 123
7.2.2 进程间的相互通信 126
7.3 小结 127
第8章 准备实验室环境 128
8.1 获取Linux操作系统 129
8.1.1 下载CentOS 129
8.1.2 下载Ubuntu 130
8.2 在虚拟机管理程序上创建自动化虚拟机 131
8.2.1 在VMware ESXi上创建Linux虚拟机 131
8.2.2 使用KVM创建Linux虚拟机 135
8.3 开始使用Cobbler 139
8.3.1 Cobbler的工作原理 139
8.3.2 在自动化服务器上安装Cobbler 141
8.3.3 通过Cobbler检查服务器硬件 144
8.4 小结 149
第9章 使用subprocess库 150
9.1 subprocess库中的Popen() 151
9.2 stdin、stdout和stderr 154
9.3 subprocess库中的call()函数 156
9.4 小结 157
第 10章 使用Fabric运行系统管理任务 158
10.1 技术要求 159
10.2 Fabric库 159
10.2.1 安装Fabric库 160
10.2.2 Fabric库中的操作 161
10.3 运行第 一个Fabric文件 164
10.3.1 有关fab工具的更多信息 167
10.3.2 使用Fabric检查系统健康状态 168
10.4 其他有用的Fabric特性 173
10.4.1 Fabric角色 173
10.4.2 Fabric上下文管理器 175
10.5 小结 176
第 11章 生成系统报告和监控系统 177
11.1 从Linux系统中收集数据 178
11.1.1 通过邮件发送收集的数据 183
11.1.2 使用time和date模块 186
11.1.3 定期运行脚本 187
11.2 在Ansible中管理用户 188
11.2.1 在Linux系统中通过Ansible管理用户 188
11.2.2 在Windows系统中通过Ansible管理用户 190
11.3 小结 190
第 12章 与数据库交互 191
12.1 在自动化服务器上安装MySQL 192
12.1.1 安装后的安全问题 193
12.1.2 验证数据库的安装 194
12.2 从Python中访问MySQL数据库 195
12.2.1 查询数据库 197
12.2.2 向数据库中插入数据 198
12.3 小结 201
第 13章 使用Ansible管理系统 202
13.1 Ansible术语 203
13.2 在Linux系统上安装Ansible 205
13.2.1 在RHEL系统和CentOS上安装Ansible 205
13.2.2 在Ubuntu系统上安装Ansible 205
13.3 在即席模式下使用Ansible 206
13.4 创建第 一个playbook 210
13.5 Ansible的条件、处理程序和循环 212
13.5.1 设计条件 213
13.5.2 在Ansible中创建循环 215
13.5.3 使用处理程序触发任务 216
13.6 使用事实数据 218
13.7 使用Ansible模板 219
13.8 小结 221
第 14章 创建和管理VMware虚拟机 222
14.1 设置环境 223
14.2 使用Jinja2生成VMX文件 225
14.2.1 创建VMX模板 226
14.2.2 处理Excel工作表中的数据 229
14.2.3 生成VMX文件 231
14.3 VMware Python客户端 238
14.3.1 安装PyVmomi库 239
14.3.2 使用PyVmomi库的第 一步 240
14.3.3 更改虚拟机的状态 244
14.3.4 更多内容 246
14.4 使用playbook管理实例 246
14.5 小结 249
第 15章 和OpenStack API交互 250
15.1 RESTful Web服务 251
15.2 设置环境 253
15.2.1 安装rdo-OpenStack包 253
15.2.2 生成answer文件 254
15.2.3 编辑answer文件 254
15.2.4 运行packstack 255
15.2.5 访问OpenStack GUI 255
15.3 向OpenStack keystone发送请求 256
15.4 用Python创建实例 259
15.4.1 创建镜像 259
15.4.2 分配类型模板 261
15.4.3 创建网络和子网 262
15.4.4 启动实例 265
15.5 使用Ansible管理OpenStack实例 266
15.5.1 Shade和Ansible的安装 266
15.5.2 创建Ansible
playbook 267
15.6 小结 270
第 16章 使用Python和Boto3自动化AWS 271
16.1 AWS Python模块 272
16.2 管理AWS实例 274
16.3 自动化AWS S3服务 277
16.3.1 创建存储桶 277
16.3.2 上传文件到存储桶 278
16.3.3 删除存储桶 278
16.4 小结 279
第 17章 使用Scapy框架 280
17.1 Scapy 281
17.2 安装Scapy 282
17.2.1 在基于UNIX的系统上安装Scapy 282
17.2.2 Windows系统和macOS对Scapy的支持情况 283
17.3 使用Scapy生成报文和网络流 283
17.4 抓取和重播报文 288
17.4.1 向报文注入数据 290
17.4.2 报文嗅探 292
17.4.3 将报文写入pcap文件 294
17.5 小结 294
第 18章 使用Python编写网络扫描程序 295
18.1 网络扫描程序 296
18.2 使用Python编写网络扫描程序 296
18.2.1 增加功能 297
18.2.2 扫描服务 300
18.3 在GitHub上共享代码 303
18.3.1 创建GitHub账户 304
18.3.2 创建和推送代码 304
18.4 小结 310
猜您喜欢