欢迎来到 博文网 官方网站!
Python自动化运维快速入门+2

Python自动化运维快速入门+2

内容简介本书从零开始讲解Python

联系电话: 13983470003
产品详情

内容简介

本书从零开始讲解Python自动化运维工具和及其使用,通过上百个实际运维场景案例,帮助读者理解并掌握自动化运维技术。 本书分为16章,内括Python自动化运维概述、Python基础运维技能、实战程、实战多线程、实战协程、自动化运维工具(Anle)、定时任务模块(APScheduler)、执行远程命令的工具(Paramiko)、任务调度(Airflow)、分布式任务队列(Celery)、Docker容器技术、主流的自动化配置工具、开源配置管台搭建、统一监台Zabbix、运维开发技术、DevOps方法论等。 本书内容详尽、示例丰富,适合广大从事Python运维开发的初学者学考,同时也可作为高等院校和培训机构计算机及其相关专业的教材使用。

目录

目 录目 录第1章 自动化运维与Python 11.1 自动化运维概述 11.1.1 自动化运维势在必行 11.1.2 什么是成熟的自动化运台 21.1.3 为什么选择Pytho行运维 21.2 初识Python 61.3 Python环境搭建 61.3.1 Windows系统下的Python安装 61.3.2 Linux系统下的Python安装 91.4 开发工具介绍 131.4.1 PyCharm 131.4.2 vim 171.5 Python基础语法 201.5.1 数字运算 201.5.2 字符串 221.5.3 列表与元组 271.5.4 字典 291.5.5 集合 311.5.6 函数 331.5.7 条件控制与循环语句 341.5.8 可迭代对象、迭代器和生成器 381.5.9 对象赋值、浅、深 421.6 多个例子实战Python编程 461.6.1 实战1:九九乘法表 461.6.2 实战2:发放奖金的梯度 471.6.3 实战3:递归获取目录下文件的修改时间 481.6.4 实战4:两行代码查找替换3或5的倍数 491.6.5 实战5:一行代码的实现 501.7 pip工具的使用 50第2章 基础运维技能 532.1 文本处理 532.1.1 Python编码解码 532.1.2 文件操作 572.1.3 读写配置文件 642.1.4 解析XML文件 662.2 系统信息监控 732.3 文件系统监控 782.4 执行外部命令process 802.4.ubprocess.run()方法 802.4.2 Popen类 822.4.3 其他方法 832.5 日志记录 832.5.1 日志模块简介 842.5.2 logging模块的配置与使用 852.6 搭建FTP服务器与客户端 912.6.1 搭建FTP服务器 912.6.2 编写FTP客户端程序 952.7 邮件提醒 962.7.1 发送邮件 962.7.2 接收邮件 1012.7.3 将报警信息实时发送邮箱 1032.8 提醒 1082.8.1 处理消息 1082.8.2 将警告信息发送 112第3章 实战程 1153.1 创程的类Process 1153.2 程并发控制之Semaphore 1193.3 程同步之Lock 1203.4 程同步之Event 1223.5 程优先级队列Queue 1243.6 程程池Pool 1253.7 程之数据交换Pipe 126第4章 实战多线程 1294.1 Python多线程简介 1294.2 多线程编程之threading模块 1334.3 多线程同步之Lock(互斥锁) 1364.4 多线程同步之Semaphore(信号量) 1384.5 多线程同步之Condition 1394.6 多线程同步之Event 1404.7 线程优先级队列(queue) 1424.8 多线程之线程池pool 143第5章 实战协程 1455.1 定义协程 1455.2 并发 1475.3 异步请求 148第6章 自动化运维工具Anle 1536.1 Anle的安装 1536.2 Anle配置 1546.3 inventory文件 1556.4 Anle ad-hoc模式 1576.5 Anle playbooks模式 165第7章 定时任务模块APScheduler 1697.1 安装及基本概念 1697.1.1 APScheduler的安装 1697.1.2 APScheduler涉及的几个概念 1697.1.3 APScheduler的工作流程 1707.2 配置调度器 1727.3 启动调度器 1757.4 调度器事件监听 179第8章 执行远程命令的工具Paramiko 1828.1 介绍几个重要的类 1828.1.1 通道类 1828.1.2 传输类 1838.1.3 SSHClient类 1848.2 Paramiko的使用 1858.2.1 安装Paramiko 1858.2.2 基于用户名和密码的SSHClient方式登录 1858.2.3 基于用户名和密码的Transport方式登录并实现上传与下载 1868.2.4 基于公钥密钥的SSHClient方式登录 1878.2.5 基于公钥密钥的Transport方式登录 188第9章 分布式任务队列Celery 1899.1 Celery简介 1899.2 安装Celery 1919.3 安装RabbitMQ或Redis 1929.3.1 安装RabbitMQ 1929.3.2 安装Redis 1939.4 个Celey程序 1949.5 个工程项目 1979.6 Celery架构 2019.7 Celery 队列 2029.8 Celery Beat任务调度 2059.9 Celery 远程调用 2069.10 监控与管理 2099.10.1 Celery命令行实用工具 2099.10.2 Web实时监控工具Flower 2129.10.3 Flower的使用方法 213第10章 任务调度Airflow 21710.1 Airflow简介 21710.1.1 DAG 21810.1.2 操作符——Operators 21810.1.3 时区——timezone 21910.1.4 Web服务器——webserver 21910.1.5 调度器——schduler 22010.1.6 工作节点——worker 22010.1.7 执行器——Executor 22010.2 Airflow安装与部署 22010.2.1 在线安装 22110.2.2 离线安装 22310.2.3 部署与配置(以SQLite为知识库) 22310.2.4 指定依赖关系 22810.2.5 启动scheduler 22810.3 Airflow配置MySQL知识库和LocalExecutor 22910.4 Airflow配置Redis和CeleryExecutor 23610.5 Airflow任务开发Operators 23810.5.1 Operators简介 23910.5.2 baseOperator 简介 23910.5.3 BashOperator的使用 24010.5.4 PythonOperator的使用 24110.5.5 SSHOperator的使用 24210.5.6 HiveOperator的使用 24310.5.7 如何自定义Operator 24410.6 Airflow集群、高可用部署 24410.6.1 Airflow的四大守程 24510.6.2 Airflow的守程是如何一起工作的 24510.6.3 Airflow单节点部署 24610.6.4 Airflow多节点(集群)部署 24610.6.5 扩展worker节点 24710.6.6 扩展Master节点 24710.6.7 Airflow集群部署的具体步骤 249第11章 Docker容器技术介绍 25111.1 Docker概述 25111.2 Docker解决什么问题 25211.3 Docker的安装部署与使用 25311.3.1 安装Docker引擎 25311.3.2 使用Docker 25411.3.3 Docker命令的使用方法 25511.4 卷的概念 25811.5 数据卷共享 25911.6 自制镜像并发布 26011.7 Docker网络 26011.7.1 Docker的网络模式 26111.7.2 Docker网络端 26211.8 Docker小结 262第12章 主流自动化配置工具 26312.1 配置引擎CFEngine 26312.1.1 使用CFEngine的四个理由 26312.1.2 CFEngine的安装 26512.1.3 CFEngine的配置 26812.1.4 CFEngine政策示例 27212.2 自动化运维工具Chef 27512.2.1 Chef简介 27512.2.2 Chef的安装 27512.2.3 Chef的使用 27912.3 Puppet 28012.3.1 Puppet简介 28012.3.2 Puppet安装和配置 28112.3.3 Puppet配置语言 28212.3.4 编写个配置文件 28412.4 SaltStack 28612.4.1 SaltStack的简介 28612.4.2 SaltStack的安装与配置 28712.4.3 SaltStack的使用 293第13章 开源配置管台搭建 29913.1 open-cmdb 29913.1.1 open-cmd能介绍 30013.1.2 open-cmdb开发环境部署 30113.1.3 open-cmdb生产环境部署 30513.2 蓝鲸配台 31313.2.1 蓝鲸配台系统架构 31313.2.2 蓝鲸配台环境快速部署 314第14章 统一监台Zabbix 31914.1 Zabbix主能 31914.2 Zabbi台的技术术语 32014.3 Zabbix的主要模块 32114.4 Zabbix的安装要求 32214.5 Zabbix的安装:从安行安装 32214.6 Zabbix的安装:从容行安装 325第15章 运维开发相关技术 32815.1 前端开发之Vue.js 32815.1.1 新手学e.js的先后顺序 32815.1.2 使用Vue.js实现一个demo 32915.1.3 使用vue-cli创建工程并部署 33615.1.4 流行的Vue.js UI库 34215.1.5 几个开源的Vue.js管理项目 34215.2 后端接口开发之FastAPI 34315.2.1 FastAPI的安装 34315.2.2 编写一个demo 34415.2.3 与中间件 34515.2.4 SQL与数据库 34815.2.5 测试与调试 35315.3 WebSocket开发 35815.3.1 WebSocket client的实现 35815.3.2 WebSocket Server的实现 35915.3.3 实现一个的WebSocket 36015.3.4 基于WebSocket实现一个webshell 36115.3.5 与主流框架集成的WebSocket 364第16章 DevOps方法论 36516.1 什么是DevOps 36516.2 DevOps的关键 36616.3 DevOps常用的10个工具 36716.4 DevOps能为企业带来哪些收益 368

摘要与插图

pan style="font-family:宋体">章自动化运维与Python随着云计算、自动化及人工智能时代的来临,Python语言也成为当下热门的语言之一。本章首先从自动化运维的概念展开,介绍自动化运维的趋势、成熟的自动化运维体系构成、自动化运维相关的开源工具;其次介绍了为什么选择Python语言作为自动化运维的工具;后讲述Python的安装、开发工具、基础语法及相应的实例。一方面,随着IT技术的飞速发展,软/硬件的设施日益复杂,企业的运维压力随之上升,自动化运维相关的人才供不应求;另一方面,国内Python方面的人才也短缺,学span>Python及自动化运维,前景自然光明。除此之外,学span>Python不仅可以做自动化工具,还可以做服务器后台、开发网络爬虫、Web网站等,因此本章关于Python的基础知识对Python初学者也有帮助。1.pan>自动化运维概述在运维技术还不成熟的早期,都是通过手工执行命令管理硬件、软件资源,但是随着技术的成熟及软/硬件资源的增多,运维人员需要执行大量的重复命令来完成日常的运维工作。而自动化运维是将这些原本大量重复的日常工作自动化,让工具或系统代替人工来自动完成具体的运维工作,以解放生产力、提率、降低运维成本。可以说自动化运维是当下IT运维工作的必经之路。1.1.pan>自动化运维势在必行自动化运维之所以势在必行,原因有以下几点:(1)手工运维缺点多。传统的手工执行命令管理软/硬件资源易发生操作风险,只要是手工操作,难免会有失误,一旦执行错误的命令,后果可能是灾难的。当软/硬件资源增多时,手工配置效率低,而增加运维人员的数量也会导致人力成本变高。(2)传统人工运维难以管理大量的软/硬件资源。试想当机器数目增长到1000台以上时,仅靠人力来维护几乎是困难的事情。(3)业务需求的频繁变更。现在的市场瞬息万变,业务唯有快速响应市场的需求才能可持续发展,对工具的需求和变更越来越多,频率也越来越快,程序升级、上线、变更都是需要运维条线来支撑的。同样地,只有借力自动化运维,使用工具才能满足频繁变更的业务需求。帮即,自动化运维的技术己经成熟。自动化运维被广泛关注的一个重要原因是自动化运维的技术己经成熟,技术的成熟为自动化运维提供了智力支持。云计算、大数据一方面刺激着自动化运维的需求,另一方面也助力自动化运维。微服务的软件架构、容器等技术都在推动自动化运维。(5)工具已经到位。关于自动化运维的工具,无论是开源的工具还是企业级的产品,都是应有尽有,实现自动化运维已经势不可挡。1.1.2什么是成熟的自动化运台现在成熟的自动化运台都具备哪些要素呢?一般来说,有以下几点:(pan>)需要有支持混合云的配置管理数据库(CMDB)CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相连,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程来保证数据的。现在更多的企业选择将服务器资源放在云上,无论是公有云还是私有云都提供资源管理接口,利用这些接口构建一个自动化的CMDB,同时增加日志审能,通过接口对资源的操作都应该记录,以供后续审计。(2)有完备的监控和应用能分析系统。运维离不开监控和能分析。资源监控(如服务器、磁盘、网络)和能监控(如中间件、数据库)都是较为基础的监控,开源工具有ZabbixNagiosOpenFalcon(国产)。应用能分析,如某些Web请求的响应速度、SQL语句执行的快慢等对于问题的定位是有帮助的,其开源工具有pinpointzipkincat,商业工具有New ReclicDynatrace。(3)需要具备批量运维工具。如何有效降低运维的成本呢,肯定是更少的人干更多的活。批量运维工具可有效节省大量人力,使用少量的人管理大量的服务器软/硬件资源成为可能。开源的批量运维工具有anlesaltstackpuppetchef,其中anlesaltstack纯由Python编写,代码质量和社区活跃程度都使用。(4)需要有日志分析工具。随着服务器的增多,日志的采集和分析成了运维中的难点,试想如何快速地从成百上千台服务中采集日志并分析出问题所在呢?日志采集方面工具有Sentry,也是纯由Python打造,日志分析有ELK,两者都是开源的。(5)需要有持续集成和版本控制工具。持续集成是一种软件实践,团队成员经常集成他们的工作,每次集成都通过自动化的构建来验证,从而尽早发现集成错误。持续集成的工具有HudsonCruiseControlContinuumJenkins等。版本控制是软件开发中常用的工具,比较的是svngit。(6)还要有漏洞扫描工具。借助商业的漏洞扫描工具扫描漏洞,保护服务器资源不受外界的攻击。1.1.3 为什么选择Python Python作为运维方面的编程语言呢?网络上不乏已经开发好的运维软件,但

……

在线客服
微信联系
客服
扫码加微信(手机同号)
电话咨询
返回顶部