新書推薦:
《
世界巨变:严复的角色(王中江著作系列)
》
售價:HK$
110.0
《
塔西佗(全二册)(二十世纪人文译丛)
》
售價:HK$
396.0
《
(棱镜精装人文译丛)思想的假死
》
售價:HK$
63.8
《
当代精神分析新论
》
售價:HK$
94.6
《
宋初三先生集(中国思想史资料丛刊)
》
售價:HK$
217.8
《
定言命令式:康德道德哲学研究(政治哲学名著译丛)
》
售價:HK$
129.8
《
棕榈油的全球史 : 从奴隶船到购物篮
》
售價:HK$
96.8
《
简帛时代与早期中国思想世界(上下册)(王中江著作系列)
》
售價:HK$
308.0
|
編輯推薦: |
目前开源软件社区有不少优秀的Python自动化运维软件,如Ansible、Airflow、Celery、Paramiko等,甚至一些大型商用的自动化部署系统也用Python开发。本书以实战为主旨,通过Python运维开发中常见的典型应用,让读者系统地掌握Python在自动化运维领域的各种热门技术及主流开源工具的使用,并提高Python自动化运维技能。
|
內容簡介: |
本书从零开始讲解Python自动化运维工具和及其使用,通过上百个实际运维场景案例,帮助读者理解并掌握自动化运维技术。 本书分为16章,内容包括Python自动化运维概述、Python基础运维技能、实战多进程、实战多线程、实战协程、自动化运维工具(Ansible)、定时任务模块(APScheduler)、执行远程命令的工具(Paramiko)、任务调度神器(Airflow)、分布式任务队列(Celery)、Docker容器技术、主流的自动化配置工具、开源配置管理平台搭建、统一监控平台Zabbix、运维开发技术、DevOps方法论等。 本书内容详尽、示例丰富,适合广大从事Python运维开发的初学者学习和参考,同时也可作为高等院校和培训机构计算机及其相关专业的教材使用。
|
關於作者: |
郑征,计算机专业毕业,硕士,师从李云飞教授,曾发表论文两篇,获两项实用新型专利。工作多年来一直致力于运维开发及数据分析,从事银行数据库、操作系统、大型软件系统相关的运维及开发工作,擅长Python、Shell、SQL。对自动化运维、监控、调度工具、数据库技术有过细致的研究,是Python语言的狂热爱好者。长期专注于Python运维程序开发,致力于解决运维工作过程中的实际问题,提高运维工作的效率,减轻运维工作的负担。
|
目錄:
|
第1章 自动化运维与Python 1
1.1 自动化运维概述 1
1.1.1 自动化运维势在必行 1
1.1.2 什么是成熟的自动化运维平台 2
1.1.3 为什么选择Python进行运维 2
1.2 初识Python 6
1.3 Python环境搭建 6
1.3.1 Windows系统下的Python安装 6
1.3.2 Linux系统下的Python安装 9
1.4 开发工具介绍 13
1.4.1 PyCharm 13
1.4.2 vim 17
1.5 Python基础语法 20
1.5.1 数字运算 20
1.5.2 字符串 22
1.5.3 列表与元组 27
1.5.4 字典 29
1.5.5 集合 31
1.5.6 函数 33
1.5.7 条件控制与循环语句 34
1.5.8 可迭代对象、迭代器和生成器 38
1.5.9 对象赋值、浅复制、深复制 42
1.6 多个例子实战Python编程 46
1.6.1 实战1:九九乘法表 46
1.6.2 实战2:发放奖金的梯度 47
1.6.3 实战3:递归获取目录下文件的修改时间 48
1.6.4 实战4:两行代码查找替换3或5的倍数 49
1.6.5 实战5:一行代码的实现 50
1.7 pip工具的使用 50
第2章 基础运维技能 53
2.1 文本处理 53
2.1.1 Python编码解码 53
2.1.2 文件操作 57
2.1.3 读写配置文件 64
2.1.4 解析XML文件 66
2.2 系统信息监控 73
2.3 文件系统监控 78
2.4 执行外部命令subprocess 80
2.4.1 subprocess.run()方法 80
2.4.2 Popen类 82
2.4.3 其他方法 83
2.5 日志记录 83
2.5.1 日志模块简介 84
2.5.2 logging模块的配置与使用 85
2.6 搭建FTP服务器与客户端 91
2.6.1 搭建FTP服务器 91
2.6.2 编写FTP客户端程序 95
2.7 邮件提醒 96
2.7.1 发送邮件 96
2.7.2 接收邮件 101
2.7.3 将报警信息实时发送至邮箱 103
2.8 微信提醒 108
2.8.1 处理微信消息 108
2.8.2 将警告信息发送至微信 112
第3章 实战多进程 115
3.1 创建进程的类Process 115
3.2 进程并发控制之Semaphore 119
3.3 进程同步之Lock 120
3.4 进程同步之Event 122
3.5 进程优先级队列Queue 124
3.6 多进程之进程池Pool 125
3.7 多进程之数据交换Pipe 126
第4章 实战多线程 129
4.1 Python多线程简介 129
4.2 多线程编程之threading模块 133
4.3 多线程同步之Lock(互斥锁) 136
4.4 多线程同步之Semaphore(信号量) 138
4.5 多线程同步之Condition 139
4.6 多线程同步之Event 140
4.7 线程优先级队列(queue) 142
4.8 多线程之线程池pool 143
第5章 实战协程 145
5.1 定义协程 145
5.2 并发 147
5.3 异步请求 148
第6章 自动化运维工具Ansible 153
6.1 Ansible的安装 153
6.2 Ansible配置 154
6.3 inventory文件 155
6.4 Ansible ad-hoc模式 157
6.5 Ansible playbooks模式 165
第7章 定时任务模块APScheduler 169
7.1 安装及基本概念 169
7.1.1 APScheduler的安装 169
7.1.2 APScheduler涉及的几个概念 169
7.1.3 APScheduler的工作流程 170
7.2 配置调度器 172
7.3 启动调度器 175
7.4 调度器事件监听 179
第8章 执行远程命令的工具Paramiko 182
8.1 介绍几个重要的类 182
8.1.1 通道类 182
8.1.2 传输类 183
8.1.3 SSHClient类 184
8.2 Paramiko的使用 185
8.2.1 安装Paramiko 185
8.2.2 基于用户名和密码的SSHClient方式登录 185
8.2.3 基于用户名和密码的Transport方式登录并实现上传与下载 186
8.2.4 基于公钥密钥的SSHClient方式登录 187
8.2.5 基于公钥密钥的Transport方式登录 188
第9章 分布式任务队列Celery 189
9.1 Celery简介 189
9.2 安装Celery 191
9.3 安装RabbitMQ或Redis 192
9.3.1 安装RabbitMQ 192
9.3.2 安装Redis 193
9.4 个Celey程序 194
9.5 个工程项目 197
9.6 Celery架构 201
9.7 Celery 队列 202
9.8 Celery Beat任务调度 205
9.9 Celery 远程调用 206
9.10 监控与管理 209
9.10.1 Celery命令行实用工具 209
9.10.2 Web实时监控工具Flower 212
9.10.3 Flower的使用方法 213
第10章 任务调度神器Airflow 217
10.1 Airflow简介 217
10.1.1 DAG 218
10.1.2 操作符—;—;Operators 218
10.1.3 时区—;—;timezone 219
10.1.4 Web服务器—;—;webserver 219
10.1.5 调度器—;—;schduler 220
10.1.6 工作节点—;—;worker 220
10.1.7 执行器—;—;Executor 220
10.2 Airflow安装与部署 220
10.2.1 在线安装 221
10.2.2 离线安装 223
10.2.3 部署与配置(以SQLite为知识库) 223
10.2.4 指定依赖关系 228
10.2.5 启动scheduler 228
10.3 Airflow配置MySQL知识库和LocalExecutor 229
10.4 Airflow配置Redis和CeleryExecutor 236
10.5 Airflow任务开发Operators 238
10.5.1 Operators简介 239
10.5.2 BaseOperator 简介 239
10.5.3 BashOperator的使用 240
10.5.4 PythonOperator的使用 241
10.5.5 SSHOperator的使用 242
10.5.6 HiveOperator的使用 243
10.5.7 如何自定义Operator 244
10.6 Airflow集群、高可用部署 244
10.6.1 Airflow的四大守护进程 245
10.6.2 Airflow的守护进程是如何一起工作的 245
10.6.3 Airflow单节点部署 246
10.6.4 Airflow多节点(集群)部署 246
10.6.5 扩展worker节点 247
10.6.6 扩展Master节点 247
10.6.7 Airflow集群部署的具体步骤 249
第11章 Docker容器技术介绍 251
11.1 Docker概述 251
11.2 Docker解决什么问题 252
11.3 Docker的安装部署与使用 253
11.3.1 安装Docker引擎 253
11.3.2 使用Docker 254
11.3.3 Docker命令的使用方法 255
11.4 卷的概念 258
11.5 数据卷共享 259
11.6 自制镜像并发布 260
11.7 Docker网络 260
11.7.1 Docker的网络模式 261
11.7.2 Docker网络端口映射 262
11.8 Docker小结 262
第12章 主流自动化配置工具 263
12.1 配置引擎CFEngine 263
12.1.1 使用CFEngine的四个理由 263
12.1.2 CFEngine的安装 265
12.1.3 CFEngine的配置 268
12.1.4 CFEngine政策示例 272
12.2 自动化运维工具Chef 275
12.2.1 Chef简介 275
12.2.2 Chef的安装 275
12.2.3 Chef的使用 279
12.3 Puppet 280
12.3.1 Puppet简介 280
12.3.2 Puppet安装和配置 281
12.3.3 Puppet配置语言 282
12.3.4 编写个配置文件 284
12.4 SaltStack 286
12.4.1 SaltStack的简介 286
12.4.2 SaltStack的安装与配置 287
12.4.3 SaltStack的使用 293
第13章 开源配置管理平台搭建 299
13.1 open-cmdb 299
13.1.1 open-cmdb功能介绍 300
13.1.2 open-cmdb开发环境部署 301
13.1.3 open-cmdb生产环境部署 305
13.2 蓝鲸配置平台 313
13.2.1 蓝鲸配置平台系统架构 313
13.2.2 蓝鲸配置平台环境快速部署 314
第14章 统一监控平台Zabbix 319
14.1 Zabbix主要功能 319
14.2 Zabbix平台的技术术语 320
14.3 Zabbix的主要模块 321
14.4 Zabbix的安装要求 322
14.5 Zabbix的安装:从安装包进行安装 322
14.6 Zabbix的安装:从容器进行安装 325
第15章 运维开发相关技术 328
15.1 前端开发之Vue.js 328
15.1.1 新手学习Vue.js的先后顺序 328
15.1.2 使用Vue.js实现一个demo 329
15.1.3 使用vue-cli创建工程并部署 336
15.1.4 流行的Vue.js UI库 342
15.1.5 几个开源的Vue.js管理项目 342
15.2 后端接口开发之FastAPI 343
15.2.1 FastAPI的安装 343
15.2.2 编写一个demo 344
15.2.3 安全与中间件 345
15.2.4 SQL与数据库 348
15.2.5 测试与调试 353
15.3 WebSocket开发 358
15.3.1 WebSocket client的实现 358
15.3.2 WebSocket Server的实现 359
15.3.3 实现一个安全的WebSocket 360
15.3.4 基于WebSocket实现一个webshell 361
15.3.5 与主流框架集成的WebSocket 364
第16章 DevOps方法论 365
16.1 什么是DevOps 365
16.2 DevOps成功的关键 366
16.3 DevOps常用的10个工具 367
16.4 DevOps能为企业带来哪些收益 368
|
內容試閱:
|
随着IT技术的进步及业务需求的快速增长,服务器也由几十台上升到成百上千台,IT运维自动化是一个必然的趋势。Python是当今流行的编程语言之一,由于Python语言本身的优势,因此在编写自动化程序时简单、高效,实用效果立竿见影。目前开源软件社区优秀的自动化运维软件,如Ansible、Airflow、Celery、Paramiko等框架都使用Python语言开发,甚至一些大型商用的自动化部署系统都有Python的应用。因此,学好Python,不仅可以自己编写自动化运维程序,而且可以对开源的自动化运维工具进行二次开发,这样才能在就业严峻的市场环境中具备较强的职场竞争力。
目前市场上介绍Python自动化运维的图书并不多,真正从实际应用出发,通过各种典型应用场景和项目案例来指导读者提高运维开发水平的图书就更少。本书以实战为主旨,通过Python运维开发中常见的典型应用(近百个场景),让读者全面、深入、透彻地学习Python在自动化运维领域的各种热门技术及主流开源工具的使用,提高实际开发水平和项目实战能力。
本书特色
1. 从基础讲起,适合零基础学习Python运维的读者
为了便于读者理解本书内容,全书从基础知识开始讲解,并结合实际应用,激发读者学习兴趣,提高学习效率。
2. 涵盖自动化运维的主流开源工具
本书涵盖Ansible、APScheduler、Paramiko、Celery、Airflow、Docker等主流运维工具的架构、原理及详细使用方法。
3. 项目案例典型,实战性强,有较高的应用价值
本书每一篇都提供大量的实战案例,这些案例来源于作者开发的实际项目,具有很高的应用价值和参考性,而且分别使用不同的框架组合实现。这些案例经稍加修改,便可用于实际项目开发中。
本书内容
第1章 自动化运维与Python
本章介绍自动化运维的背景知识、相关的开源工具以及如何构造成熟的自动化运维体系。
第2章 基础运维技能
本章介绍如何使用Python处理文件、监控系统信息、监控文件系统、调用外部命令、日志记录、搭建FTP服务器、发送邮件报警等实用基础运维技术。
第3~5章 实战多进程、实战多线程、实战协程
第3~5章对多进程和多线程中的创建方法、锁、信号量、事件、队列、进程池、线程池、协程的定义和使用、适用场景等进行详细介绍,并配有示例用于练习和实际使用。
第7~10章 开源工具的使用方法
第7~10章主要介绍开源工具的使用方法,包括自动化运维工具(Ansible)、定时任务模块(APScheduler)、执行远程命令的工具(Paramiko)、分布式任务队列(Celery)及任务调度神器(Airflow)。
第11章 Docker容器技术
本章介绍高级运维工具Docker,包括Docker的框架、原理、所能解决的问题、安装部署、使用方法等,同时也对Docker中的卷、卷的共享、如何自制镜像、Docker网络配置等做详细介绍。
第12章 主流自动化配置工具
本章介绍主流的自动化配置工具,包括配置引擎CFEngine、自动化运维工具Chef、配置管理工具Puppet、基础设施管理工具SaltStack,分别介绍它们的功能特点、安装过程及简要的使用方法。
第13章 开源配置管理平台搭建
本章主要介绍开源的配置管理平台的系统功能、技术实现、开发环境及生产环境的安装部署过程。开源的配置管理平台一个是open-cmdb,一个是bk-cmdb,安装部署主流的开源项目,可以学习优秀开源软件的系统设计,同时也可以节省企业的成本。
第14章 统一监控平台Zabbix
本章主要介绍统一监控平台Zabbix的系统功能及生产环境的安装部署过程。在企业网络环境中部署Zabbix,可以保证服务器系统的安全运营,并提供灵活的通知机制以便让系统管理员快速定位和解决系统存在的各种问题。
第15章 运维开发相关技术
本章介绍前端开发框架Vue.js、后端接口开发框架FastAPI及WebSocket开发,包括一些优秀的开源项目,掌握这些技术,可以自行开发复杂的管理平台,成为一名合格的运维开发人员。
第16章 DevOps方法论
本章探讨DevOps方法论,介绍什么是DevOps,DevOps实施成功的关键因素,DevOps常用的工具,DevOps能为企业带来哪些收益等。
升级版说明
从第1版编写至今,一些工具的版本已经更新,Python稳定版本也由3.6更新至3.8;第1版内容上缺少主流自动化配置工具以及配置管理平台的介绍,也缺少运维开发技术的介绍,据此作者对第1版进行修订。本版基于Python 3.8.5重新梳理安装过程和部分源码,增加主流自动化配置工具及管理平台、运维开发相关技术以及DevOps方法论,不足之处还请读者批评指正。
示例代码下载与技术支持
本书示例代码,请用微信扫描右侧二维码下载(可按页面提示,把下载链接转到自己的邮箱中下载)。如果有疑问题,请联系booksaga@163.com,邮件主题为“;Python自动化运维快速入门(第2版)”;。
本书读者
? 需要做运维自动化开发的技术人员
? 从零开始学Python的运维人员
? 运维工程师、运维经理和网络管理员
? DevOps实施人员
本书作者
郑征,计算机专业毕业,硕士,师从李云飞教授,曾发表论文两篇,获两项实用新型专利。工作多年来一直致力于运维开发及数据分析,从事银行数据库、操作系统、大型软件系统相关的运维及开发工作,擅长Python、Shell、SQL。对自动化运维、监控、调度工具、数据库技术有过细致的研究,是Python语言的狂热爱好者。长期专注于Python运维程序开发,致力于解决运维工作过程中的实际问题,提高运维工作的效率,减轻运维工作的负担。
著 者
2021年1月
|
|