Linux系统配置及运维项目化教程(第2版 )

系列书名:ICT建设与运维岗位能力培训丛书

出版日期:2024-12

书  号:978-7-121-79391-1

作  者:陈志涛、李志杰  主编

        何康健、曾振东、罗定福   副主编

                    正月十六工作室   组编

出 版 社:电子工业出版社

定  价:58.80 元

书籍介绍

本书精准聚焦自动化运维平台 Zabbix 的深度应用领域。以详尽笔触深入剖析 Zabbix 平台的部署步骤与关键管理功能,全方位展示其在网络设备、服务器集群、存储方案、虚拟化平台、Windows 与 Linux 操作系统、核心中间件、数据库系统乃至企业业务系统等多元对象上,实现全面且高效监控与运维的实战路径。

图书特别精选 11 个极具代表性的项目案例,这些案例皆依循实际工作流程进行系统化构建。其目的在于引领读者透彻领悟企业 ICT 资产运维管理的核心要义和实战精髓,助力读者迅速成长为精通 Zabbix 应用的运维高手,为企业运维工作筑牢坚实根基,提升运维效率与质量,在数字化浪潮中稳健护航企业信息系统的平稳运行与持续发展。

通过本书系统化的学习路径,学习者将能够逐步构建起基于自动化运维的核心能力体系。同时,本书还积极融入了职业规范、科技创新理念以及二十大精神等思政育人元素,不仅适合作为ICT相关专业的权威教材,也完全能够满足自动化运维领域从业人员的学习与实践需求,成为他们提升技能、拓展视野的宝贵指南。

本书极具职业特征,有如下特色:

一、校企联动打造技术融合知识体系

本教材的编写深度融入了企业工程师的参与经验,确保了教材内容与企业实际需求紧密相连,兼具高度实用性和前瞻性,为学习者搭建起一座从校园通往职场的坚实桥梁。同时,本教材凭借丰富的职业实战经验指南,精准捕捉技术发展趋势,并将EVE-NG、Docker、Zabbix、Ansible等前沿技术深度融合其中。通过采用项目化教程的方式,本教材以实际应用场景为起点,重点介绍了如何利用Ansible实现DHCP、DNS、邮件、数据库、WWW、NFS、SMB等服务的自动化部署,确保学习者能熟练掌握当前主流的自动化运维工具与方法,有效提升其专业素养与实操能力。

二、创新教学方式赋能项目实践操练

本教材采用工作手册式的编写模式,旨在引导学习者在“学中做、做中学”的过程中,迅速适应企业岗位的实际需求,有效缩短理论学习与实践操作之间的距离,实现校园与职场之间的无缝衔接,加速职业发展的进程。同时,本教材通过项目化教程的形式,精心挑选一系列实际项目案例,让学习者在解决真实问题的实践中深入掌握自动化运维技术,从而全面提升其解决实际问题的能力与职业素养。

三、实践导向与丰富资源夯实学员基础

本教材不仅涵盖了纸质内容,还配备了丰富的数字教学资源,包括教学视频、微课和实验素材等,以满足不同学习者的多样化需求。同时,本教材以实践应用为核心,在每个项目均附有精心设计的详细实验指导和操作步骤,确保学习者能够通过亲身实践熟练掌握自动化部署技巧,并在实践过程中巩固和深化前面学到的知识。

目录

项目1 VMware Workstation网络配置及应用1
1.1 项目情境1
1.2 项目分析2
1.3 项目相关知识2
1.3.1 VMware Workstation中的网络连接模式2
1.3.2 VMware Workstation中的虚拟机硬件参数4
1.3.3 虚拟机的镜像文件5
1.3.4 虚拟机的快照6
1.4 项目实施7
任务1-1 VMware Workstation的网络配置7
任务1-2 VMware Workstation中的虚拟机硬件参数配置11
任务1-3 VMware Workstation中的镜像管理13
任务1-4 VMware Workstation中的虚拟机快照管理14
1.5 项目拓展16
1.5.1 理论知识拓展16
1.5.2 项目实训题17
项目2 SSH协议及其应用18
2.1 项目情境18
2.2 项目分析19
2.3 项目相关知识19
2.3.1 SSH协议19
2.3.2 SSH工具20
2.3.3 SSH协议的应用22
2.4 项目实施23
任务2-1 使用SecureCRT连接Linux服务器23
任务2-2 Linux客户机免密登录Linux服务器25
任务2-3 使用scp进行远程文件复制26
任务2-4 使用SFTP协议进行远程文件的上传和下载27
2.5 项目拓展28
2.5.1 理论知识拓展28
2.5.2 项目实训题29
项目3 EVE-NG模拟器31
3.1 项目情境31
3.2 项目分析32
3.3 项目相关知识32
3.3.1 EVE-NG的特性32
3.3.2 EVE-NG镜像33
3.4 项目实施34
任务3-1 EVE-NG的安装和使用34
任务3-2 在EVE-NG中导入QEMU镜像文件41
3.5 项目拓展43
3.5.1 理论知识拓展43
3.5.2 项目实训题43
项目4 Docker安装与镜像管理45
4.1 项目情境45
4.2 项目分析46
4.3 项目相关知识46
4.3.1 Docker容器的技术特性46
4.3.2 Docker镜像47
4.3.3 Docker镜像加速器48
4.3.4 Docker仓库49
4.4 项目实施51
任务4-1 Docker的安装51
任务4-2 Docker镜像加速52
任务4-3 Docker的镜像管理53
任务4-4 Docker的仓库管理55
4.5 项目拓展57
4.5.1 理论知识拓展57
4.5.2 项目实训题58
项目5 Docker容器管理及应用60
5.1 项目情境60
5.2 项目分析61
5.3 项目相关知识61
5.3.1 Docker容器61
5.3.2 Docker的网络模式62
5.3.3 Docker存储卷64
5.3.4 Docker镜像的构建原理65
5.4 项目实施66
任务5-1 Docker容器的管理66
任务5-2 Docker容器的综合应用68
任务5-3 手工构建Docker镜像70
任务5-4 使用Docker Compose制作镜像71
5.5 项目拓展73
5.5.1 理论知识拓展73
5.5.2 项目实训题73
项目6 Zabbix的安装和配置75
6.1 项目情境75
6.2 项目分析76
6.3 项目实施76
6.3.1 Zabbix的技术特性76
6.3.2 Zabbix组件77
6.4 项目实施78
任务6-1 基于All-in-One部署Zabbix78
任务6-2 Zabbix组件分离部署83
6.5 项目拓展85
6.5.1 理论知识拓展85
6.5.2 项目实训题85
项目7 使用Zabbix监控服务器88
7.1 项目情境88
7.2 项目分析89
7.3 项目相关知识89
7.3.1 Zabbix中的主机角色89
7.3.2 Zabbix中的监控项93
7.3.3 Zabbix中的监控图形功能94
7.3.4 Zabbix中的触发器95
7.3.5 Zabbix中的告警功能96
7.4 项目实施97
任务7-1 在Zabbix中添加被监控主机97
任务7-2 在Zabbix中设置监控项99
任务7-3 在Zabbix中配置监控图形功能101
任务7-4 在Zabbix中配置触发器102
任务7-5 在Zabbix中配置邮件告警功能104
7.5 项目拓展106
7.5.1 理论知识拓展106
7.5.2 项目实训题107
项目8 使用Zabbix监控网络设备109
8.1 项目情境109
8.2 项目分析110
8.3 项目相关知识110
8.3.1 SNMP网络管理协议110
8.3.2 交换网络监控111
8.3.3 路由网络监控111
8.4 项目实施112
任务8-1 思科交换机配置112
任务8-2 使用Zabbix监控思科交换机114
任务8-3 华三路由器配置117
任务8-4 使用Zabbix监控华三路由器118
8.5 项目拓展120
8.5.1 理论知识拓展120
8.5.2 项目实训题121
项目9 Ansible的安装和配置123
9.1 项目情境123
9.2 项目分析124
9.3 项目相关知识124
9.3.1 自动化运维工具124
9.3.2 Ansible文件系统125
9.3.3 Ansible中配置文件的优先级126
9.4 项目实施126
任务9-1 在管理主机上安装Ansible126
任务9-2 修改Ansible配置文件127
任务9-3 在被管理主机上安装Python129
9.5 项目拓展130
9.5.1 理论知识拓展130
9.5.2 项目实训题130
项目10 Ansible节点连接及管理132
10.1 项目情境132
10.2 项目分析133
10.3 项目相关知识133
10.3.1 主机清单文件133
10.3.2 ansible.cfg配置文件134
10.3.3 基于对称密钥登录135
10.3.4 基于非对称密钥登录136
10.4 项目实施137
任务10-1 修改Inventory配置文件137
任务10-2 修改ansible.cfg配置文件138
任务10-3 使用Ansible基于对称密钥进行主机连接139
任务10-4 使用Ansible基于非对称密钥进行主机连接140
10.5 项目拓展142
10.5.1 理论知识拓展142
10.5.2 项目实训题143
项目11 Ansible中的模块及应用144
11.1 项目情境144
11.2 项目分析145
11.3 项目相关知识146
11.3.1 Ad-Hoc命令146
11.3.2 Ansible中的command模块147
11.3.3 Ansible中的shell模块147
11.3.4 Ansible中的copy模块和fetch模块148
11.3.5 Ansible中的lineinfile模块148
11.3.6 Ansible中的file模块149
11.4 项目实施149
任务11-1 command模块的应用149
任务11-2 shell模块的应用150
任务11-3 copy模块的应用151
任务11-4 fetch模块的应用152
任务11-5 lineinfile模块的应用152
任务11-6 file模块的应用153
11.5 项目拓展154
11.5.1 理论知识拓展154
11.5.2 项目实训题155
项目12 Ansible中的变量及其应用156
12.1 项目情境156
12.2 项目分析157
12.3 项目相关知识158
12.3.1 变量158
12.3.2 Playbook的语法规则158
12.3.3 变量优先级160
12.3.4 特殊变量161
12.4 项目实施162
任务12-1 在Playbook中定义变量162
任务12-2 在Inventory中定义变量163
任务12-3 在主机变量文件中定义变量164
任务12-4 在主机组变量文件中定义变量165
任务12-5 在adhoc命令行中定义变量167
任务12-6 register变量及其应用167
任务12-7 facts变量及其应用168
任务12-8 magic变量及其应用169
12.5 项目拓展170
12.5.1 理论知识拓展170
12.5.2 项目实训题171
项目13 Ansible Playbook中的结构语句及其应用172
13.1 项目情境172
13.2 项目分析173
13.3 项目相关知识173
13.3.1 Playbook中的条件结构语句173
13.3.2 Playbook中的循环结构语句174
13.3.3 Playbook中的错误控制语句175
13.4 项目实施177
任务13-1 Playbook中条件结构语句的应用177
任务13-2 Playbook中循环结构语句的应用178
任务13-3 Playbook中错误控制语句的应用180
13.5 项目拓展182
13.5.1 理论知识拓展182
13.5.2 项目实训题183
项目14 自动化配置节点网卡185
14.1 项目情境185
14.2 项目分析185
14.3 项目相关知识186
14.3.1 Team接口和Team子接口186
14.3.2 LACP187
14.4 项目实施187
任务14-1 Ansible配置节点Active Backup187
任务14-2 Ansible配置节点LACP190
14.5 项目拓展192
14.5.1 理论知识拓展192
14.5.2 项目实训题193
项目15 自动化部署运维网络194
15.1 项目情境194
15.2 项目分析195
15.3 项目相关知识195
15.3.1 Docker部署Ansible网络拓扑195
15.3.1 基于Ansible构建容器196
15.4 项目实施196
任务15-1 在Docker中部署Ansible主机和节点196
任务15-2 基于Docker的Ansible主机和节点连接198
15.5 项目拓展200
15.5.1 理论知识拓展200
15.5.2 项目实训题201
项目16 自动化部署DHCP服务203
16.1 项目情境203
16.2 项目分析204
16.3 项目相关知识204
16.3.1 DHCP服务的工作原理204
16.3.2 Ansible中DHCP服务管理模块205
16.4 项目实施206
任务16-1 使用Docker Compose部署DHCP服务206
任务16-2 使用Ansible配置节点DHCP服务器208
任务16-3 使用Ansible测试节点DHCP客户端212
16.5 项目拓展214
16.5.1 理论知识拓展214
16.5.2 项目实训题215
项目17 自动化部署DNS服务216
17.1 项目情境216
17.2 项目分析217
17.3 项目相关知识217
17.3.1 DNS服务器及资源类型217
17.3.2 BIND服务218
17.4 项目实施219
任务17-1 使用Docker Compose部署DNS服务219
任务17-2 使用Ansible配置BIND服务221
任务17-3 Ansible测试节点主机记录解析224
17.5 项目拓展226
17.5.1 理论知识拓展226
17.5.2 项目实训题227
项目18 自动化部署邮件服务229
18.1 项目情境229
18.2 项目分析230
18.3 项目相关知识230
18.3.1 邮件系统架构230
18.3.2 Postfix和Dovecot231
18.4 项目实施232
任务18-1 使用Docker Compose部署邮件服务232
任务18-2 使用Ansible配置邮件服务235
任务18-3 使用Ansible测试邮件客户端237
18.5 项目拓展238
18.5.1 理论知识拓展238
18.5.2 项目实训题239
项目19 自动化部署数据库服务241
19.1 项目情境241
19.2 项目分析242
19.3 项目相关知识242
19.3.1 数据库系统架构242
19.3.2 数据库服务及管理243
19.4 项目实施244
任务19-1 使用Docker Compose部署MySQL服务244
任务19-2 使用Ansible配置数据库服务246
任务19-3 使用Ansible测试数据库连接248
19.5 项目拓展249
19.5.1 理论知识拓展249
19.5.2 项目实训题250
项目20 自动化部署WWW服务251
20.1 项目情境251
20.2 项目分析252
20.3 项目相关知识252
20.3.1 WWW服务及配置文件252
20.3.2 虚拟主机253
20.4 项目实施254
任务20-1 使用Docker Compose部署WWW服务254
任务20-2 使用Ansible配置HTTP和Nginx服务256
任务20-3 使用Ansible测试WWW服务258
20.5 项目拓展261
20.5.1 理论知识拓展261
20.5.2 项目实训题261
项目21 自动化部署文件共享服务263
21.1 项目情境263
21.2 项目分析264
21.3 项目相关知识264
21.3.1 NFS文件共享系统协议264
21.3.2 SMB文件共享系统协议265
21.4 项目实施266
任务21-1 使用Docker Compose部署文件共享服务266
任务21-2 使用Ansible配置NFS服务和SMB服务267
任务21-3 使用Ansible测试文件共享服务270
21.5 项目拓展273
21.5.1 理论知识拓展273
21.5.2 项目实训题274