描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302525806
为了便于读者理解本书内容,从基础知识开始讲述,并结合实际应用,激发学习兴趣,提高学习效率。
2. 涵盖自动化运维的主流开源工具
本书涵盖Ansible、APScheduler、Paramiko、Celery、Airflow、Docker等主流运维工具的架构、原理及详细使用方法。
3. 项目案例典型,实战性强,有较高的应用价值
本书每一篇都提供了大量的实战案例,这些案例来源于作者开发的实际项目,具有很高的应用价值和参考性,而且分别使用不同的框架组合实现。这些案例稍加修改,便可用于实际项目开发中。
本书分为三篇共11章,*篇是基础运维,介绍自动化运维、Python基础、文本处理、日志、FTP服务器、使用Python发邮件、微信等。通过本篇的学习,可以达到编写Python程序来解决基础运维问题的水平;第二篇是中级运维,介绍自动化运维工具(Ansible)、作业调度工具(APScheduler、Airflow)、分布式任务队列(Celery),目的是为了让运维工作上一个新的台阶;第三篇是高级运维,介绍Docker容器技术,现现已成运维人员必备的工具。
本书内容详尽、示例丰富,是广大从事运维开发的读者必备参考书,同时也非常适合学习Python的读者阅读,也可作为高等院校计算机及相关专业作为教材使用。
第一篇 Python与基础运维
第1章 自动化运维与Python 3
1.1 自动化运维概述 3
1.1.1 自动化运维势在必行 3
1.1.2 什么是成熟的自动化运维平台 4
1.1.3 为什么选择Python进行运维 4
1.2 初识Python 8
1.3 Python环境搭建 8
1.3.1 Windows系统下的Python安装 8
1.3.2 Linux系统下的Python安装 11
1.4 开发工具介绍 13
1.4.1 PyCharm 14
1.4.2 Vim 18
1.5 Python基础语法 24
1.5.1 数字运算 24
1.5.2 字符串 25
1.5.3 列表与元组 30
1.5.4 字典 33
1.5.5 集合 35
1.5.6 函数 36
1.5.7 条件控制与循环语句 38
1.5.8 可迭代对象、迭代器和生成器 42
1.5.9 对象赋值、浅复制、深复制 45
1.6 多个例子实战Python编程 49
1.6.1 实战1:九九乘法表 49
1.6.2 实战2:发放奖金的梯度 50
1.6.3 实战3:递归获取目录下文件的修改时间 51
1.6.4 实战4:两行代码查找替换3或5的倍数 53
1.6.5 实战5:一行代码的实现 53
1.7 pip工具的使用 54
第2章 基础运维 57
2.1 文本处理 57
2.1.1 Python编码解码 57
2.1.2 文件操作 61
2.1.3 读写配置文件 68
2.1.4 解析XML文件 70
2.2 系统信息监控 76
2.3 文件系统监控 82
2.4 执行外部命令subprocess 84
2.4.1 subprocess.run()方法 84
2.4.2 Popen类 86
2.4.3 其他方法 87
2.5 日志记录 87
2.5.1 日志模块简介 88
2.5.2 logging模块的配置与使用 89
2.6 搭建FTP服务器与客户端 95
2.6.1 搭建FTP服务器 95
2.6.2 编写FTP客户端程序 99
2.7 邮件提醒 100
2.7.1 发送邮件 100
2.7.2 接收邮件 105
2.7.3 将报警信息实时发送至邮箱 107
2.8 微信提醒 112
2.8.1 处理微信消息 112
2.8.2 将警告信息发送至微信 116
第二篇 中级运维
第3章 实战多进程 121
3.1 创建进程的类Process 121
3.2 进程并发控制之Semaphore 125
3.3 进程同步之Lock 126
3.4 进程同步之Event 128
3.5 进程优先级队列Queue 130
3.6 多进程之进程池Pool 131
3.7 多进程之数据交换Pipe 132
第4章 实战多线程 135
4.1 Python多线程简介 135
4.2 多线程编程之threading模块 139
4.3 多线程同步之Lock(互斥锁) 142
4.4 多线程同步之Semaphore(信号量) 144
4.5 多线程同步之Condition 145
4.6 多线程同步之Event 146
4.7 线程优先级队列(queue) 148
4.8 多线程之线程池pool 149
第5章 实战协程 151
5.1 定义协程 151
5.2 并发 153
5.3 异步请求 154
第6章 自动化运维工具Ansible 159
6.1 Ansible安装 159
6.2 Ansible配置 160
6.3 inventory文件 161
6.4 ansible ad-hoc模式 163
6.5 Ansible Playbooks模式 171
第7章 定时任务模块APScheduler 175
7.1 安装及基本概念 175
7.1.1 APScheduler的安装 175
7.1.2 APScheduler涉及的几个概念 175
7.1.3 APScheduler的工作流程 176
7.2 配置调度器 178
7.3 启动调度器 181
7.4 调度器事件监听 185
第8章 执行远程命令(Paramiko) 188
8.1 介绍几个重要的类 188
8.1.1 通道(Channel)类 188
8.1.2 传输(Transport)类 189
8.1.3 SSHClient类 190
8.2 Paramiko的使用 191
8.2.1 安装 191
8.2.2 基于用户名和密码的SSHClient方式登录 191
8.2.3 基于用户名和密码的Transport方式登录并实现上传与下载 192
8.2.4 基于公钥密钥的SSHClient方式登录 193
8.2.5 基于公钥密钥的Transport方式登录 194
第9章 分布式任务队列Celery 195
9.1 Celery简介 195
9.2 安装Celery 197
9.3 安装RabbitMQ或Redis 198
9.3.1 安装RabbitMQ 198
9.3.2 安装Redis 199
9.4 第一个Celey程序 200
9.5 第一个工程项目 203
9.6 Celery架构 207
9.7 Celery 队列 208
9.8 Celery Beat任务调度 211
9.9 Celery 远程调用 212
9.10 监控与管理 215
9.10.1 Celery命令行实用工具 215
9.10.2 Web实时监控工具Flower 218
9.10.3 Flower的使用方法 219
第10章 任务调度神器Airflow 223
10.1 Airflow简介 223
10.1.1 DAG 224
10.1.2 操作符——Operators 224
10.1.3 时区——timezone 225
10.1.4 Web服务器——webserver 225
10.1.5 调度器——schduler 226
10.1.6 工作节点——worker 226
10.1.7 执行器——Executor 226
10.2 Airflow安装与部署 226
10.2.1 在线安装 227
10.2.2 离线安装 229
10.2.3 部署与配置(以SQLite为知识库) 229
10.2.4 指定依赖关系 234
10.2.5 启动scheduler 234
10.3 Airflow配置MySQL知识库和LocalExecutor 235
10.4 Airflow配置Redis和CeleryExecutor 242
10.5 Airflow任务开发Operators 244
10.5.1 Operators简介 245
10.5.2 BaseOperator 简介 245
10.5.3 BashOperator的使用 245
10.5.4 PythonOperator的使用 247
10.5.5 SSHOperator的使用 248
10.5.6 HiveOperator的使用 249
10.5.7 如何自定义Operator 250
10.6 Airflow集群、高可用部署 250
10.6.1 Airflow的四大守护进程 250
10.6.2 Airflow的守护进程是如何一起工作的 251
10.6.3 Airflow单节点部署 252
10.6.4 Airflow多节点(集群)部署 252
10.6.5 扩展worker节点 253
10.6.6 扩展Master节点 253
10.6.7 Airflow集群部署的具体步骤 255
第三篇 高级运维
第11章 Docker容器技术介绍 259
11.1 Docker概述 259
11.2 Docker解决什么问题 260
11.3 Docker的安装部署与使用 261
11.3.1 安装Docker引擎 261
11.3.2 使用Docker 262
11.3.3 Docker命令的使用方法 263
11.4 卷的概念 266
11.5 数据卷共享 267
11.6 自制镜像并发布 267
11.7 Docker网络 268
11.7.1 Docker的网络模式 269
11.7.2 Docker网络端口映射 270
11.8 Docker小结 270
随着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网络配置等做了详细介绍。
示例源代码
本书示例源代码下载地址请扫描右边的二维码获取。如果下载有问题,请联系,邮件主题为“Python自动化运维快速入门”。
本书读者
? 需要做运维自动化开发的技术人员;
? 从零开始学Python的运维人员;
? 运维工程师、运维经理和网络管理员。
本书由郑征主笔,其他参与创作的还有吴贵文、董山海,在此表示感谢。
著者
2019年2月
评论
还没有评论。