关于本书的内容有任何问题,请联系 初美呈
项目1 系统自动化运维:从Shell到Python 1 知识目标 1 技能目标 1 素养目标 1 任务1.1 从Shell编程开始系统自动化运维 1 任务要求 1 相关知识 2 1.1.1 初识系统自动化运维 2 1.1.2 Linux系统自动化运维的基本工具——Shell脚本 3 任务实现 4 任务1.1.1 准备实验环境 4 任务1.1.2 编写Shell脚本批量创建Linux用户账户 5 任务1.1.3 编写Shell脚本批量检测主机在线状态 7 任务1.1.4 编写Shell脚本一键安装JDK 8 任务1.1.5 编写Shell脚本监控Linux系统性能 9 任务1.2 使用Python提升系统自动化运维技能 13 任务要求 13 相关知识 13 1.2.1 Python简介 13 1.2.2 Python的模块、包与库 14 1.2.3 Python与系统自动化运维 15 任务实现 15 任务1.2.1 搭建Python开发环境 15 任务1.2.2 编写Python程序监控Linux系统性能 18 任务1.3 使用Python执行外部命令 23 任务要求 23 相关知识 23 1.3.1 subprocess模块简介 23 1.3.2 subprocess模块的便利函数 23 1.3.3 subprocess模块的Popen类 25 任务实现 26 任务1.3.1 使用subprocess模块编程批量检测主机在线状态 26 任务1.3.2 编写通用的外部命令执行函数 27 项目小结 28 课后练习 28 项目实训 29 实训1 编写Shell脚本监控系统性能 29 实训2 编写Python脚本监控系统负载 29 实训3 使用subprocess模块编程创建Linux用户账户 29 项目2 监控系统与调度运维任务 30 知识目标 30 技能目标 30 素养目标 30 任务2.1 采集系统信息和管理进程 30 任务要求 30 相关知识 31 2.1.1 了解psutil库 31 2.1.2 系统信息相关函数 31 2.1.3 进程管理功能 33 任务实现 34 任务2.1.1 使用psutil库采集系统信息 34 任务2.1.2 使用psutil库实现进程管理 37 任务2.2 监控文件系统更改 37 任务要求 37 相关知识 38 2.2.1 了解pyinotify库 38 2.2.2 了解watchdog库 40 任务实现 42 任务2.2.1 基于pyinotify库编写文件系统更改监控程序 42 任务2.2.2 基于watchdog库编写文件系统更改监控程序 43 任务2.3 监控Web服务 45 任务要求 45 相关知识 45 2.3.1 PycURL库简介 45 2.3.2 PycURL库的基本用法 46 任务实现 48 基于PycURL库编写Web服务监控程序 48 任务2.4 调度运维任务 50 任务要求 50 相关知识 50 2.4.1 APScheduler库的组件 50 2.4.2 APScheduler库的基本用法 51 任务实现 54 任务2.4.1 使用Cron服务调度运维任务 54 任务2.4.2 基于APScheduler库编程调度运维 任务 54 项目小结 55 课后练习 55 项目实训 56 实训1 使用psutil库编程获取系统启动时间和登录信息 56 实训2 使用watchdog库编程监控文件的移动 56 实训3 使用PycURL库编程判断Web服务的可用性 57 实训4 使用APScheduler库编程调度监控任务 57 项目3 处理文件内容与配置文件 58 知识目标 58 技能目标 58 素养目标 58 任务3.1 解析和处理文件内容 58 任务要求 58 相关知识 59 3.1.1 字符串及其操作 59 3.1.2 文本文件的读写 60 3.1.3 编码和解码 61 3.1.4 正则表达式 62 任务实现 65 任务3.1.1 统计用户账户 65 任务3.1.2 查看配置文件并去除注释和空行 66 任务3.2 操作配置文件 67 任务要求 67 相关知识 67 3.2.1 INI文件及其Python操作方法 67 3.2.2 XML文件及其Python解析方法 68 3.2.3 JSON文件及其Python操作方法 69 3.2.4 YAML文件及其Python操作方法 70 任务实现 72 任务3.2.1 编程操作INI文件 72 任务3.2.2 使用DOM方法读写XML文件 73 任务3.2.3 编程操作JSON文件 74 任务3.2.4 编程操作YAML文件 75 任务3.3 使用模板高效处理文本文件 76 任务要求 76 相关知识 76 3.3.1 什么是模板 76 3.3.2 Jinja2模板语法 77 3.3.3 Jinja2模板的渲染 78 任务实现 79 任务3.3.1 使用Jinja2模板生成HTML文件 79 任务3.3.2 使用Jinja2模板生成XML文件 80 任务3.4 比对文件和目录内容 81 任务要求 81 相关知识 81 3.4.1 difflib模块 81 3.4.2 filecmp模块 82 任务实现 83 任务3.4.1 使用difflib模块编程比较两个文件 内容 83 任务3.4.2 使用filecmp模块编程比较两个目录 内容 84 项目小结 85 课后练习 86 项目实训 87 实训1 获取网页中所有图片的链接 87 实训2 编写将XML文件转换为YAML文件的Python程序 87 实训3 使用Jinja2模板生成HTML报表 87 项目4 记录日志与发送邮件 88 知识目标 88 技能目标 88 素养目标 88 任务4.1 记录日志 88 任务要求 88 相关知识 89 4.1.1 为什么要使用logging模块 89 4.1.2 logging模块的日志级别 89 4.1.3 logging模块的基本用法 89 4.1.4 logging模块的类 91 4.1.5 日志记录的配置 94 任务实现 94 任务4.1.1 将日志消息同时输出到屏幕和文件 94 任务4.1.2 使用日志文件记录异常处理信息 95 任务4.1.3 使用日志记录系统监控异常信息 96 任务4.2 发送邮件 97 任务要求 97 相关知识 97 4.2.1 smtplib模块及其基本用法 97 4.2.2 email模块及其基本用法 98 任务实现 100 任务4.2.1 通过邮件发送报警通知 100 任务4.2.2 通过邮件发送运维报告 102 项目小结 103 课后练习 103 项目实训 104 实训1 使用日志记录文件删除和移动监控的信息 104 实训2 监控文件删除和移动并发送邮件通知 104 项目5 运维数据记录与可视化 105 知识目标 105 技能目标 105 素养目标 105 任务5.1 记录运维数据 105 任务要求 105 相关知识 106 5.1.1 纯文本的CSV文件 106 5.1.2 功能强大的Excel文件 106 5.1.3 使用数据库存储 109 任务实现 110 任务5.1.1 使用CSV文件记录系统监控数据 110 任务5.1.2 使用SQLite数据库记录系统监控数据 112 任务5.2 可视化运维数据 114 任务要求 114 相关知识 115 5.2.1 经典的Python绘图库Matplotlib 115 5.2.2 高效、简洁的Web可视化框架Dash 116 任务实现 121 任务5.2.1 基于Matplotlib库生成系统监控数据统计图表 121 任务5.2.2 通过Dash框架实现系统监控数据仪表盘 123 项目小结 127 课后练习 127 项目实训 128 实训1 使用Excel文件记录系统监控数据并绘制CPU使用率的折线图 128 实训2 基于Dash框架绘制CPU和内存使用率的柱形图 128 项目6 远程管理和批量运维服务器 129 知识目标 129 技能目标 129 素养目标 129 任务6.1 使用Paramiko库远程管理服务器 129 任务要求 129 相关知识 130 6.1.1 SSH协议 130 6.1.2 Paramiko库简介 130 6.1.3 使用SSHClient类建立SSH连接 131 6.1.4 使用Transport类控制SSH连接 132 6.1.5 使用SFTPClient实现文件传输 133 任务实现 134 任务6.1.1 搭建多服务器实验环境 134 任务6.1.2 基于密钥认证连接远程服务器 135 任务6.1.3 在远程服务器上执行sudo命令 137 任务6.1.4 实现交互式操作的远程伪终端 138 任务6.2 使用Fabric库批量管理和运维服务器 139 任务要求 139 相关知识 140 6.2.1 Fabric库简介 140 6.2.2 Connection类的基本用法 140 6.2.3 为sudo命令自动提供密码 143 6.2.4 批量操作远程服务器 143 6.2.5 传统的fab命令行工具 145 任务实现 145 任务6.2.1 批量部署源代码 145 任务6.2.2 集中采集多台服务器的系统信息 147 任务6.2.3 自动部署LAMP平台 148 项目小结 150 课后练习 150 项目实训 151 实训1 使用Paramiko库编程实现基于密钥认证的SSH客户端 151 实训2 使用Fabric库编程实现批量采集服务器的网络流量信息 151 实训3 使用Fabric库编程实现自动安装Docker CE 152 项目7 网络管理和网络安全 153 知识目标 153 技能目标 153 素养目标 153 任务7.1 IP地址管理与DNS解析 153 任务要求 153 相关知识 154 7.1.1 IPy库及其基本用法 154 7.1.2 dnspython库及其基本用法 156 任务实现 157 任务7.1.1 使用IPy库解析IP地址 157 任务7.1.2 使用dnspython库解析DNS记录 158 任务7.2 实现网络探测和安全扫描 159 任务要求 159 相关知识 160 7.2.1 nmap工具 160 7.2.2 python-nmap库 164 任务实现 166 任务7.2.1 检测网络中在线状态的主机 166 任务7.2.2 检测主机的服务及版本 166 任务7.3 使用Scapy库处理网络数据包 167 任务要求 167 相关知识 168 7.3.1 Scapy库简介 168 7.3.2 Scapy库的基本使用方法 168 任务实现 174 任务7.3.1 使用Scapy库进行SYN扫描 174 任务7.3.2 使用Scapy库进行TCP路由跟踪 175 任务7.3.3 使用Scapy库进行抓包重放 175 项目小结 177 课后练习 177 项目实训 178 实训1 检测主机的服务及版本并将结果生成HTML报表 178 实训2 使用Scapy库抓取网络数据包并进行处理 178 项目8 企业级系统综合运维 179 知识目标 179 技能目标 179 素养目标 179 任务8.1 熟悉Ansible的基本用法 179 任务要求 179 相关知识 180 8.1.1 Ansible的特点和应用 180 8.1.2 Ansible的基本架构 181 8.1.3 安装Ansible 181 8.1.4 配置Ansible 182 8.1.5 编写清单文件 183 8.1.6 配置SSH连接 184 8.1.7 Ansible的模块 185 8.1.8 使用Ansible即席命令 186 8.1.9 命令执行模块 187 任务实现 187 任务8.1.1 使用Ansible在目标主机上执行Shell脚本 187 任务8.1.2 使用Ansible提权操作目标主机 190 任务8.2 基于Playbook实现自动化任务 190 任务要求 190 相关知识 191 8.2.1 Playbook的基本语法 191 8.2.2 运行Playbook 193 8.2.3 在Playbook中使用处理程序 195 8.2.4 在Playbook中定义和使用变量 195 8.2.5 在Playbook中使用控制结构 197 8.2.6 使用Ansible Vault加密内容 198 任务实现 200 任务8.2.1 使用Playbook配置系统时钟同步 200 任务8.2.2 使用Playbook批量添加用户账户 202 任务8.3 使用Ansible角色组织Playbook 204 任务要求 204 相关知识 204 8.3.1 理解Ansible角色 204 8.3.2 使用Ansible Galaxy 208 任务实现 210 任务8.3.1 通过角色部署Web负载平衡 210 任务8.3.2 通过Ansible Galaxy部署角色 216 任务8.4 部署Zabbix监控平台 218 任务要求 218 相关知识 218 8.4.1 Zabbix的主要特性 218 8.4.2 Zabbix的基本架构 219 任务实现 219 任务8.4.1 以容器形式安装Zabbix服务器 219 任务8.4.2 使用Ansible部署Zabbix代理 222 任务8.4.3 试用Zabbix实现系统监控 225 项目小结 227 课后练习 228 项目实训 229 实训1 使用Ansible即席命令执行Shell脚本检测目标主机的CPU使用率 229 实训2 使用Playbook批量更改CentOS的系统环境配置 229 实训3 从Ansible Galaxy获取Redis角色并在CentOS服务器上部署 230
本书是一本采用任务驱动式体例编写的ECharts数据可视化技术教材,以通俗易懂的语言和丰富实用的任务,帮助读者...
本书是面向PHP语言和MySQL数据库初学者的一本入门教材,使用通俗易懂的语言、丰富的图解和实用的案例,详细讲...
本书以PyCharm为主要开发工具,采用理论与实训案例相结合的编写方式,系统地讲解Python的相关知识。本书...
本书注重基础知识的讲解,循序渐进、系统地讲述了JavaScript和jQuery前端开发的相关基础知识。Jav...
本书较为全面地介绍OceanBase分布式数据库的环境部署、运维、性能优化和应用等方面的知识。全书共8个项目,...
本书为Java基础入门教材,适合初学者使用。全书共13章,第1~2章主要讲解Java技术的一些基础知识,内容包...
本书基于openEuler(22.03 LTS SP3版)国产操作系统和OpenStack(Train版)云计...
本书采用图文并茂的方式,通过 10 个来自实际工作的项目,详细讲解Windows Server 2022的相关...
内 容 提 要 本书围绕软件行业相关岗位的实际需求,采用校企合作的方式设计教材案例,推进“岗课赛证”协同育人...
本书合理选取JavaScript的相关理论知识,优化JavaScript程序设计的教学内容,科学安排各模块的编...
我要评论