资源名称:运维前线 一线运维专家的运维方法、技巧与实践

内容简介:

当前IT领域的概念层出不穷,云计算、物联网、移动互联网、大数据、人工智能、VR,所有的这一切都基于IT系统,IT系统正在向规模更大、更复杂、更高级的方向演进,一切IT资源都掌握在运维手里,通过运维来操作。这个时代对运维的要求越来越高,运维如果稍有不慎,就会造成重大的损失,所以随着IT系统的发展,运维的重要性也越来越高。根据量子力学理论,世界由基本粒子组成,因此世界是不连续的,这个理论在运维知识体系的建立上同样适用。仔细回想一下自己运维体系的建立,就是逐个攻克和掌握知识点,再进一步通过实践不断加深的过程。《运维前线》也是这样,其中的每一篇文章都能够协助读者更快地掌握一个或多个知识点,相信通过运维前线系列的逐步出版,终能够覆盖更多的运维知识点,为读者带来更多的实践经验和理念。

资源目录:

推荐序

前 言

第1章 自动化运维之深度解码 1

1.1 概述 1

1.2 运维自动化的三重境界 3

1.3 运维自动化的困境和价值 4

1.3.1 运维自动化的困境 4

1.3.2 运维自动化的价值 4

1.4 运维自动化的多维解读 5

1.4.1 基于应用变更场景的维度划分 5

1.4.2 基于系统层次的维度划分 8

1.4.3基于与业务程序耦合紧密程度的维度划分 8

1.4.4 面向服务的自动化能力划分 9

1.5 运维自动化的方法论 11

1.6 运维自动化系统的实现 12

1.6.1 DNS管理系统 12

1.6.2 CMDB管理系统 13

1.6.3 名字服务中心系统 13

1.6.4 持续部署管理系统 14

1.6.5 运维调度管理系统 15

1.7 运维自动化系统的API参考实现 16

1.8 运维自动化依赖的团队模型 17

1.8.1 团队的能力模型 17

1.8.2 团队的驱动模型 18

1.8.3 团队的技能模型 18

1.8.4 参考的运维团队组织结构 19

1.9 小结 19

第2章利用Facter和Django快速构建CMDB 20

2.1 CMDB简介 21

2.2 开源CMDB介绍 21

2.2.1 OneCMDB介绍 21

2.2.2 CMDBuild介绍 22

2.2.3 其他的开源CMDB 23

2.3 Puppet及Facter介绍 24

2.3.1 什么是Puppet 24

2.3.2 为什么是Puppet 25

2.3.3 什么是Facter 25

2.3.4 Facter的特点 25

2.3.5 Facter变量 26

2.4 如何利用Python获取Facts 27

2.4.1 工作原理 27

2.4.2 利用Python脚本获取Facts 27

2.5使用Django快速构建CMDB系统 28

2.5.1 Django介绍 28

2.5.2 Django安装 29

2.5.3 Django常用命令 30

2.5.4 Django的配置 30

2.6 高级进阶 44

2.6.1 历史查询功能 44

2.6.2 API功能 45

2.6.3 数据表结构 48

2.6.4 用户管理功能 50

2.6.5 用户组管理功能 51

2.7 小结 53

第3章数据中心搬迁中的x86自动化运维 54

3.1 数据中心搬迁准备 54

3.1.1 数据中心搬迁介绍 54

3.1.2 搬迁环境介绍 55

3.1.3 搬迁前的准备工作 56

3.1.4 搬迁信息收集 56

3.2利用VMware脚本简化虚拟化层的搬迁 58

3.2.1通过脚本完成ESXI安装后的基础设置 58

3.2.2 批量挂载数据盘 63

3.2.3 批量注册虚拟机 67

3.2.4 vCenter目录结构的调整 68

3.2.5批量更改虚拟机名称及port group 69

3.2.6批量设置虚拟机版本和CPU、内存保留值 70

3.3利用批处理与Shell脚本简化逻辑节点的搬迁 71

3.3.1 逻辑节点切换脚本的思路 71

3.3.2利用批处理脚本简化Windows逻辑节点的搬迁 72

3.3.3利用Shell脚本简化Linux逻辑节点的搬迁 78

3.3.4通过SFTP和WMIC指令将脚本文件上传至所有虚拟机 86

3.3.5 搬迁期间的注意事项 87

3.4 小结 87

第4章集中配置管理工具Puppet 88

4.1如何同步puppet-agent端上的常用服务 89

4.2如何在puppet-agent端上自动安装常用的软件包 90

4.3如何自动同步puppet-agent端的yum源 90

4.4如何根据不同名字的节点机器推送不同的文件 92

4.5如何根据节点机器名来选择性地执行Shell程序 95

4.6如何快速同步puppet-server端的www目录文件 97

4.7如何利用ERB模板自动配置Apache虚拟主机 102

4.8如何利用ERB模板自动配置Nginx虚拟主机 105

4.9 小结 110

第5章深度实践iptables 111

5.1 禁用连接追踪 111

5.1.1 排查连接追踪导致的故障 111

5.1.2 分析连接追踪的原理 113

5.1.3 禁用连接追踪的方法 114

5.1.4 确认禁用连接追踪的效果 117

5.2 慎重禁用ICMP协议 117

5.2.1禁用ICMP协议导致的一则故障案例 117

5.2.2 MTU发现的原理 119

5.2.3 解决问题的方法 121

5.3 网络地址转换在实践中的案例 121

5.3.1 源地址NAT 121

5.3.2 目的地址NAT 122

5.4深入理解iptables的各种表和各种链 123

5.5 小结 125

第6章使用systemd管理Linux系统服务 126

6.1 systemd和sysVinit之间的关系 126

6.1.1 sysVinit方式下系统的启动特点 127

6.1.2 systemd方式下系统的启动特点 127

6.2 systemd的原理和启动顺序 128

6.2.1 sysVinit的启动顺序 128

6.2.2 systemd的启动顺序 130

6.3 systemd的进程控制命令 135

6.3.1 systemctl命令 136

6.3.2 hostnamectl命令 136

6.3.3 localectl命令 137

6.3.4 loginctl命令 137

6.3.5 timedatectl命令 138

6.4 systemd服务管理 138

6.4.1编写Nginx的sysVinit启动脚本 138

6.4.2编写Nginx的systemd启动脚本 140

6.4.3 systemd的其他功能 142

6.5 优化 146

6.5.1使用systemd-analyze优化启动时间 146

6.5.2 使用systemd journal功能 148

6.6 小结 148

第7章PHP运维实践 149

7.1 PHP再认识 150

7.1.1 PHP进程的工作方式 150

7.1.2 PHP代码的编译和部署 151

7.1.3 PHP内部实现和生命周期 151

7.1.4 PHP在互联网技术栈的位置 152

7.2PHP开发、架构、运维问题及解决思路 153

7.2.1 运维对PHP研发提要求 153

7.2.2运维参与PHP项目架构设计 154

7.2.3PHP运维常见问题及解决之道 156

7.3 PHP进程部署和配置、代码发布 157

7.3.1 PHP进程的部署 157

7.3.2 PHP配置文件变更 161

7.3.3 PHP配置项 162

7.3.4PHP进程部署及配置文件管理实践 164

7.3.5 PHP代码发布 165

7.3.6PHP代码发布实践:代码发布系统 167

7.4 PHP性能分析 170

7.4.1 性能问题概述 170

7.4.2 PHP性能问题 171

7.4.3 性能分析方法 172

7.4.4PHP性能分析实践:性能分析系统 181

7.5 PHP故障处理与监控 182

7.5.1 PHP故障分类及处理思路 183

7.5.2 业务监控和故障发现 184

7.5.3 PHP故障消除的方法 186

7.5.4 故障分析案例 187

7.6 小结 189

第8章应用系统运行分析 190

8.1 分析模型 191

8.1.1 数据采集 191

8.1.2 数据模型 194

8.2 运行分析平台建设 199

8.2.1 数据采集接口 199

8.2.2 数据分析模块 200

8.2.3 推广 200

8.3 呼叫中心系统运行分析示例 201

8.3.1 确定分析方案 201

8.3.2 问题分析案例介绍 202

8.4 小结 203

第9章虚拟化中存储配置典型场景:启动风暴 204

9.1 oVirt虚拟化平台配置介绍 205

9.1.1 存储配置背景知识 205

9.1.2 模板与实例同一存储 206

9.1.3 模板与实例分离存储 207

9.1.4无状态实例的硬盘与快照分离存储 207

9.2 启动风暴相关系列实验 208

9.2.1 模板配置 208

9.2.2 实验脚本 208

9.2.3WD 1TB机械硬盘启动Windows XP实验 210

9.2.4Intel 480GB SSD启动WindowsXP实验 212

9.2.5 实验结论 214

9.3私有云中处理启动风暴的常用方法 214

9.3.1 启动排队 214

9.3.2 存储分层选择 215

9.3.3其他提升桌面云存储性能的方式 217

9.4 小结 219

第10章私有云桌面网络组建 220

10.1 桌面云常用网络 220

10.1.1 NAT网络 220

10.1.2 桥接网络 223

10.1.3 VLAN网络 226

10.1.4 Access模式 226

10.1.5 Trunk模式 229

10.1.6 Open vSwitch 231

10.2 oVirt/OpenStack的桌面网络应用 232

10.2.1 oVirt/OpenStack组网方式 232

10.2.2 应用场景举例 237

10.3 小结 239

第11章浅谈服务器交付的那些事儿 240

11.1 设备签收的学问 240

11.2 服务器设置 241

11.3 Cobbler的流程与规划 244

11.4 服务器安装时遇到的各种坑 247

11.4.1DHCP客户端获取IP地址失败 247

11.4.2 TFTP加载失败 248

11.4.3 TFTP Client交互后 无响应 248

11.4.4 yum安装失败 249

11.4.5Linux内核无法识别新硬件 250

11.4.6恶意PXE启动导致原有系统被误装 250

11.5 交接后的故事 250

11.6 小结 252

第12章 企业级Nginx Web服务优化实战 254

12.1 Nginx基本安全优化 254

12.1.1调整参数隐藏Nginx软件版本号信息 254

12.1.2 更改源码隐藏Nginx软件名及版本号 256

12.1.3更改Nginx服务的默认用户 259

12.2 根据参数优化Nginx服务性能 260

12.2.1优化Nginx服务的worker进程个数 260

12.2.2优化绑定不同的Nginx进程到不同的CPU上 262

12.2.3 Nginx事件处理模型优化 265

12.2.4调整Nginx单个进程允许的客户端最大连接数 266

12.2.5配置Nginx worker进程的最大打开文件数 267

12.2.6优化服务器域名的散列表大小 267

12.2.7 开启高效文件传输模式 269

12.2.8优化Nginx连接参数,调整连接超时时间 269

12.2.9上传文件大小的限制(动态应用) 272

12.2.10 FastCGI相关参数调优(配合PHP引擎动态服务) 273

12.2.11 配置Nginx gzip压缩实现性能优化 277

12.2.12 配置Nginx expires缓存实现性能优化 279

12.3 Nginx日志相关的优化与安全 283

12.3.1编写脚本实现Nginx access日志轮询 283

12.3.2不记录不需要的访问日志 284

12.3.3 访问日志的权限设置 284

12.4Nginx站点目录及文件URL访问控制 284

12.4.1根据扩展名限制程序和文件访问 284

12.4.2禁止访问指定目录下的所有文件和目录 285

12.4.3 限制网站来源IP访问 286

12.4.4配置Nginx,禁止非法域名解析访问企业网站 287

12.5Nginx图片及目录防盗链解决方案 288

12.6 Nginx错误页面的优雅显示 295

12.6.1生产环境中常见的HTTP状态码列表 295

12.6.2为什么要配置错误页面优雅显示 295

12.7Nginx站点目录文件及目录权限优化 298

12.8 Nginx防爬虫优化 300

12.9利用Nginx限制HTTP的请求方法 302

12.10 使用CDN做网站内容加速 302

12.10.1 什么是CDN 302

12.10.2 CDN的特点 303

12.10.3 企业使用CDN的基本 要求 304

12.11 Nginx程序架构优化 304

12.12 使用普通用户启动Nginx(监牢模式) 305

12.12.1 为什么要让Nginx服务使用普通用户 305

12.12.2 给Nginx服务降权的解决方案 305

12.12.3 给Nginx服务降权实战 306

12.13 控制Nginx并发连接数量 308

12.14 控制客户端请求Nginx的速率 312

12.15 小结 314

第13章 游戏运维的思考 315

13.1 游戏运维最关键的几件事 315

13.1.1 安全 315

13.1.2 稳定 318

13.1.3 高效 322

13.1.4 成本节约 323

13.2 游戏运维人的发展 32

资源截图:

运维前线 一线运维专家的运维方法、技巧与实践