图书前言

前  言

随着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月