猜你喜欢
Linux运维之道(第3版)

Linux运维之道(第3版)

书籍作者:丁明一 ISBN:9787121461811
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:1260
创建日期:2024-05-03 发布日期:2024-05-03
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

随着开源技术的不断进步与创新,在整个IT行业中,越来越多的企业愿意采用开源产品,而基于Linux的操作系统为这些开源产品提供了一个极佳的操作平台。本书将基于Linux操作系统这样一个基础平台,讲解如何实现各种开源产品的应用案例。全书主要从运维工作中的应用服务入手,全面讲解Linux操作系统及各种软件服务的运维方案。 现在的商业环境是一个充满竞争的环境,很多企业的业务量在不断地增长,对服务质量的要求也越来越高。特别是互联网企业,为了满足客户更高的要求,提升客户使用体验,IT?部门维护的设备往往数以万计,如此庞大的设备维护量,通常会让IT管理人员头疼不已。本书介绍的自动化运维内容可以让我们快速掌握简单的大规模批量运维方法。仅仅依靠自动化运维还不足以发挥出这些设备的能效,因此,我们还需要将各个服务器设备有机地结合在一起,为客户提供更加安全、快捷、高效的服务,于是集群技术应运而生。本书最后将围绕集群技术介绍目前比较流行的开源产品部署案例。

作者简介

丁明一达内集团云计算、数据分析与商业智能教学研发总监、开源技术推广者;红帽认证架构师(RHCA)、红帽认证高级讲师(RHCI)、华为授权讲师(HCSI);曾任职于中国电信、鹏博士等多家IT企业,并创办多个企业,有十余年IT行业经验;精通Linux系统、Shell脚本编程、数据库、各大云计算产品、Docker容器技术、分布式存储技术,拥有丰富的虚拟化技术使用经验,数据分析经验,对企业集群存储环境及高性能、高可用架构有深入的研究,著有畅销图书《Linux运维之道》《Linux Shell核心编程指南》。

编辑推荐
适读人群 :适合Linux运维人员、Linux爱好者阅读,可作为Linux运维人员的案头书。

《Linux运维之道》从运维工作的实际需求出发,从运维工作中的应用服务入手,全面讲解Linux操作系统及各种软件服务的运维方案。

★从第1版到第3版横跨近十年的打磨,与时俱进

★新增多项内容,份量十足,紧跟时代,掌握更新技术

★从基础讲到高级应用,由浅入深,适合各层次人群

★操作系统、应用软件全面升级为最新版本,使用更方便

★理论结合实践,大量经典案例,实用价值更高

★作者享有 “华为认证ICT专家(HCIE)”等多项专业title

拥有十余年IT行业经验和多本畅销图书,品质保障

★获得多位业内专家的高度盛赞和强烈力荐

操作系统从CentOS 7升级到Rocky Linux 9

应用软件全面升级为全新版本

l 新增git版本控制软件

l 新增Ansible自动化篇章

l 新增Prometheus监控

l 新增WireGuard最新VPN加密技术

l 新增Podman容器技术

前言

前言

撰写本书的起因

目前,越来越多的企业需要依赖IT技术发布产品与服务,尤其是电子商务、直播企业最为明显,这凸显了IT技术在现代企业中的重要性。当企业需要部署IT业务时,机房与服务器是整个IT技术生态链中非常重要的环节。对于服务器操作系统的选择,Linux以其开源、稳定、安全的特性,目前在服务器领域已经成为无可争议的霸主,而且有众多的服务可以应用于 Linux平台,以满足企业的各种业务需求。本书的重点在于讲解如何部署服务器操作系统,以及如何在Linux操作系统上部署常见的IT服务。

从 1991 年至今,Linux已经快速成长为企业服务器产品的首选操作系统,越来越多的IT企业采用Linux作为服务器端平台操作系统,为客户提供高性能、高可用的业务服务。随着红帽公司宣布其年营业额超10亿美元,开源Linux操作系统的“光辉时代”来临。红帽的成功预示着采用开源模式的Linux操作系统可以为企业提供安全、可靠和高性能的平台系统。

在服务器领域中,Linux操作系统的份额越来越大,而目前技术人才相对匮乏,导致出现大量的就业人才缺口。本书着眼于Linux技术中方方面面的主流技术,为读者顺利进入Linux行业开启了一扇大门。本书主要分为三部分,从基础的系统管理到Shell自动化运维的实现,再到网络服务器的部署实施,最后通过案例介绍高负载网络架构的企业环境。本书在选择操作系统发行版本时,综合了各个发行版本的特点,最终选择了 Rocky Linux作为基础系统平台。Rocky Linux是众多Linux发行版本之一,其源于RedHat框架,完全开源,包括开放的软件YUM源,可以为用户带来更加方便的升级方法。另外,目前国内的很多云厂商也都支持Rocky Linux,这也增加了本书的实用性。

本书结构

本书第1篇为基础知识,主要讲述Linux操作系统的安装部署及基本命令行工具的使用,帮助读者快速掌握Linux基本知识要点,夯实基本功。基于Shell脚本和Ansible实现运维工作自动化,能帮助运维人员摆脱周而复始的无效工作,加快企业进入自动化、智能化的运维环境。具体包括:

◎ 部署操作系统

◎ 命令工具

◎ 自动化运维

第2篇为网络服务,主要讨论网络架构的规划与部署,通过网站综合案例提升读者的应用能力,并针对常见问题提供故障排错。通过部署监控与安全软件确保网络服务的正常及安全运行。具体包括:

◎ 搭建网络服务

◎ 系统监控

◎ 网络安全

第3篇为高级应用,主要描述当前主流的虚拟化及服务器高可用技术,满足大型企业的生产需求。还会介绍集群及高可用软件,这些软件充分体现了在巨大数据压力下产品业务的安全及性能优势。

◎ 虚拟化与容器技术

◎ 集群及高可用

排版说明

关于本书中的排版,如果书中的命令是需要读者输入的,我们将使用等比例黑体加粗显示;对于计算机输出的命令返回结果,书中将使用等比例斜体字显示。由于采用开源模式,所以Linux操作系统中拥有大量明文文本形式的配置文件,对于打开及修改文本文件中的内容,书中将把文件中的内容放置于方框中;对于需要读者注意的地方,书中会给出明确的注意提示。

本书读者

本书可以作为学习Linux应用技术的一本指南,主要针对希望进入Linux运维行业的新手,不过对于有经验的专家而言,其中的部分章节同样适用。另外,本书也可以作为计算机培训参考教材。

关于配置文件及代码

本书中部分主要的配置文件及代码可以在 GitHub 上下载,下载地址为https://github.com/ jacobproject/operation。

联系作者

作者在编写本书的过程中已经花了大量的时间对内容进行审核与校验,但因为作者精力有限,书中难免出现一些错漏,敬请广大专家和读者批评、指正。

关于本书,您有任何意见或建议可以发送邮件至[email protected],或使用博客平台http://manual.blog.51cto.com与作者交流。

致谢

由于采用业余时间编写本书,占用了大量本应该和家人在一起的欢乐时光,在此感谢家人对我的支持与勉励,感谢我的儿子(子墨)和女儿(紫悦)给家庭带来的无限欢乐。感谢我所有的同事对此项任务的全力配合与支持。感谢我的学生对本书的期待,是你们的无形支持促成了我编写本书。感谢生活中所有给予我帮助的朋友,是你们的支持让我不断地进步与创新,不管是在工作中还是在生活中,好朋友都是我走向成功的坚实后盾。感谢电子工业出版社的董英老师为本书的出版提供了大力的支持。

丁明一 北京

目录

第1篇 基础知识
第1章 部署操作系统 2
1.1 通过光盘安装Linux操作系统 2
1.1.1 操作系统版本的选择 2
1.1.2 光盘安装实例 3
1.2 无人值守自动安装Linux操作系统 11
1.2.1 大规模部署案例 11
1.2.2 PXE简介 12
1.2.3 Kickstart技术 13
1.2.4 配置安装服务器 13
1.2.5 自动化安装案例 15
1.3 常见问题分析 20
第2章 命令工具 24
2.1 基本命令 25
2.1.1 目录及文件的基本操作 25
2.1.2 查看文件内容 29
2.1.3 链接文件 32
2.1.4 压缩及解压 33
2.1.5 命令使用技巧 34
2.1.6 帮助 35
2.2 Vim文档编辑 37
2.2.1 Vim工作模式 37
2.2.2 Vim光标操作 38
2.2.3 Vim编辑文档 39
2.2.4 Vim查找与替换 39
2.2.5 Vim保存与退出 40
2.2.6 Vim小技巧 40
2.3 账户与安全 41
2.3.1 账户及组的概念 41
2.3.2 创建账户及组 42
2.3.3 修改账户及组 43
2.3.4 删除账户及组 44
2.3.5 账户与组文件解析 45
2.3.6 文件及目录权限 46
2.3.7 账户管理案例 48
2.3.8 ACL访问控制权限 50
2.4 存储管理 51
2.4.1 硬盘分区 52
2.4.2 格式化与挂载文件系统 56
2.4.3 LVM逻辑卷概述 58
2.4.4 创建LVM分区实例 60
2.4.5 修改LVM分区容量 63
2.4.6 删除LVM分区 64
2.4.7 RAID硬盘阵列概述 65
2.4.8 RAID级别 65
2.4.9 创建与管理软件RAID实例 69
2.4.10 RAID性能测试 72
2.4.11 RAID故障模拟 73
2.5 软件管理 73
2.5.1 Linux常用软件包类型 73
2.5.2 RPM软件包管理 74
2.5.3 使用DNF安装软件 76
2.5.4 DNF使用技巧 80
2.5.5 源码编译安装软件 81
2.5.6 常见问题分析 82
2.5.7 systemd服务管理 83
2.6 计划任务 88
2.6.1 at一次性计划任务 88
2.6.2 cron周期性计划任务 89
2.6.3 计划任务权限 90
2.6.4 通过systemd定制计划任务 90
2.7 性能监控 92
2.7.1 监控CPU使用情况――uptime命令 92
2.7.2 监控内存及交换分区使用情况――free命令 92
2.7.3 监控硬盘使用情况――df命令 93
2.7.4 监控网络使用情况――ip和ss命令 94
2.7.5 监控进程使用情况――ps和top命令 96
2.8 网络配置 97
2.8.1 命令行配置网络参数 97
2.8.2 修改系统配置文件配置网络参数 101
2.8.3 网络故障排错 103
2.9 内核模块 105
2.9.1 内核模块存放位置 105
2.9.2 查看已加载内核模块 106
2.9.3 加载与卸载内核模块 106
2.9.4 修改内核参数 107
第3章 自动化运维 109
3.1 Shell简介 109
3.2 Bash功能介绍 110
3.2.1 历史命令 110
3.2.2 命令别名 110
3.2.3 管道与重定向 111
3.2.4 快捷键 112
3.3 Bash使用技巧 112
3.3.1 重定向技巧 112
3.3.2 命令序列使用技巧 113
3.3.3 作业控制技巧 114
3.3.4 花括号{}的使用技巧 114
3.4 变量 115
3.4.1 自定义变量 115
3.4.2 变量的使用范围 116
3.4.3 环境变量 116
3.4.4 位置变量 117
3.4.5 变量的展开替换 118
3.4.6 数组 119
3.4.7 算术运算与测试 120
3.5 Shell引号 122
3.5.1 反斜线 122
3.5.2 单引号 123
3.5.3 双引号 123
3.5.4 反引号 123
3.6 正则表达式 123
3.6.1 基本正则表达式 124
3.6.2 扩展正则表达式 127
3.6.3 POSIX规范 128
3.6.4 Perl正则表达式 129
3.7 Sed 130
3.7.1 Sed简介 130
3.7.2 Sed基本语法格式 130
3.7.3 Sed入门范例 131
3.7.4 Sed指令与脚本 133
3.7.5 Sed高级应用 139
3.8 Awk 142
3.8.1 Awk简介 142
3.8.2 Awk工作流程 142
3.8.3 Awk基本语法格式 143
3.8.4 Awk操作指令 144
3.8.5 Awk高级应用 148
3.9 Shell脚本 151
3.9.1 脚本格式 151
3.9.2 运行脚本的方式 152
3.9.3 Shell脚本简单案例 153
3.9.4 判断语句的应用 156
3.9.5 循环语句的应用 159
3.9.6 控制语句的应用 163
3.9.7 Shell函数的应用 164
3.9.8 综合案例 166
3.9.9 图形脚本 169
3.10 Ansible 171
3.10.1 准备环境 172
3.10.2 Ansible ad-hoc命令 176
3.10.3 Ansible模块 177
3.10.4 Ansible Playbook 185
第2篇 网络服务
第4章 搭建网络服务 192
4.1 NFS文件共享 192
4.1.1 NFS服务器配置 193
4.1.2 客户端访问NFS共享 195
4.1.3 NFS高级设置 196
4.1.4 常见问题分析 199
4.2 Samba文件共享 200
4.2.1 快速配置Samba服务器 201
4.2.2 访问Samba共享 202
4.2.3 配置文件详解 204
4.2.4 Samba应用案例 205
4.2.5 常见问题分析 208
4.3 vsftpd文件共享 209
4.3.1 FTP的工作模式 210
4.3.2 安装与管理vsftpd 211
4.3.3 配置文件解析 211
4.3.4 账号权限 213
4.3.5 vsftpd应用案例 213
4.3.6 常见问题分析 217
4.4 ProFTPD文件共享 218
4.4.1 安装ProFTPD软件 218
4.4.2 配置文件解析 219
4.4.3 ProFTPD权限设置 220
4.4.4 虚拟用户应用案例 220
4.4.5 常见问题分析 224
4.5 SVN版本控制 224
4.5.1 SVN简介 224
4.5.2 四种服务器对比 226
4.5.3 安装SVN软件 227
4.5.4 svnserve服务器搭建 227
4.5.5 svnserve+SSH服务器搭建 233
4.5.6 Apache+SVN服务器搭建 234
4.5.7 多人协同编辑案例 236
4.5.8 常见问题 240
4.6 Git版本控制 241
4.6.1 部署Git远程版本服务器 242
4.6.2 客户端操作版本仓库 243
4.6.3 HEAD指针 246
4.6.4 Git分支 247
4.6.5 Git标签 253
4.6.6 免密登录Git远程版本服务器 254
4.6.7 常见问题分析 255
4.7 网络存储服务器 255
4.7.1 iSCSI网络存储 256
4.7.2 Rsync文件同步 259
4.7.3 Rsync+Inotify实现文件自动同步 265
4.8 DHCP服务器 271
4.8.1 安装软件 272
4.8.2 配置文件解析 272
4.8.3 DHCP应用案例 273
4.8.4 常见问题分析 275
4.9 DNS域名服务器 276
4.9.1 DNS简介 276
4.9.2 安装DNS软件 278
4.9.3 BIND配置文件解析 278
4.9.4 部署主域名服务器 282
4.9.5 部署从域名服务器 285
4.9.6 DNS视图应用案例 287
4.9.7 常见问题分析 289
4.10 Apache网站服务器 290
4.10.1 Apache简介 290
4.10.2 安装Apache软件 291
4.10.3 配置文件解析 292
4.10.4 虚拟主机应用案例 297
4.10.5 网站安全应用案例 298
4.10.6 常见问题分析 301
4.11 Nginx网站服务器 302
4.11.1 Nginx简介 302
4.11.2 安装Nginx软件 302
4.11.3 配置文件解析 305
4.11.4 虚拟主机应用案例 307
4.11.5 SSL网站应用案例 310
4.11.6 HTTP响应状态码 311
4.12 数据库基础 312
4.12.1 MySQL数据库简介 312
4.12.2 安装MySQL 313
4.12.3 MySQL管理工具 314
4.12.4 数据库定义语言 319
4.12.5 数据库操作语言 323
4.12.6 数据库查询语言 325
4.12.7 MySQL与安全 327
4.12.8 MySQL数据库备份与还原 330
4.13 动态网站架构案例 332
4.13.1 论坛系统应用案例 332
4.13.2 博客系统应用案例 338
第5章 系统监控 344
5.1 Zabbix监控系统 344
5.1.1 简介 344
5.1.2 Zabbix基础监控案例 345
5.1.3 Zabbix监控案例进阶 366
5.2 Prometheus监控系统 388
5.2.1 Prometheus简介 388
5.2.2 Prometheus监控应用案例 389
第6章 网络安全 400
6.1 防火墙 400
6.1.1 firewalld简介 401
6.1.2 firewall-cmd命令 402
6.2 SELinux简介 406
6.2.1 SELinux配置文件 406
6.2.2 SELinux软件包 408
6.2.3 SELinux安全上下文 408
6.2.4 SELinux排错 409
6.2.5 修改安全上下文 411
6.2.6 查看与修改布尔值 413
6.2.7 SELinux应用案例 414
6.2.8 httpd相关的SELinux安全策略 414
6.2.9 FTP相关的SELinux安全策略 415
6.2.10 MySQL相关的SELinux安全策略 416
6.2.11 NFS相关的SELinux安全策略 417
6.2.12 Samba相关的SELinux安全策略 418
6.3 OpenVPN 419
6.3.1 OpenVPN简介 419
6.3.2 安装OpenVPN服务 419
6.3.3 OpenVPN客户端 423
6.4 WireGuard 428
6.4.1  WireGuard简介 428
6.4.2  安装WireGuard 429
6.4.3  配置WireGuard 431


第3篇 高级应用
第7章 虚拟化与容器技术 436
7.1 虚拟化产品对比 436
7.1.1 VMware虚拟化技术 437
7.1.2 Xen虚拟化技术 437
7.1.3 KVM虚拟化技术 438
7.2 KVM虚拟化应用案例 438
7.2.1 安装KVM组件 438
7.2.2 创建虚拟机、安装操作系统 439
7.2.3 监控虚拟机操作系统 444
7.2.4 命令工具使用技巧 446
7.2.5 虚拟存储与虚拟网络 451
7.3 容器技术 458
7.3.1 安装容器管理软件 461
7.3.2 镜像与容器管理 461
7.3.3 自定义镜像 465
7.3.4 发布服务 467
7.3.5 存储卷 468
第8章 集群及高可用 470
8.1 集群 470
8.1.1 LVS负载均衡简介 470
8.1.2 基于NAT的LVS负载均衡 471
8.1.3 基于TUN的LVS负载均衡 472
8.1.4 基于DR的LVS负载均衡 473
8.1.5 LVS负载均衡调度算法 474
8.1.6 部署LVS 475
8.1.7 LVS负载均衡应用案例 478
8.1.8 常见问题分析 484
8.2 Keepalived双机热备 484
8.2.1 Keepalived简介 484
8.2.2 VRRP简介 485
8.2.3 安装Keepalived服务 485
8.2.4 配置文件解析 486
8.2.5 Keepalived+LVS应用案例 487
8.2.6 常见问题分析 494
8.3 Squid代理服务器 495
8.3.1 Squid简介 495
8.3.2 安装Squid服务 495
8.3.3 常见的代理服务器类型 496
8.3.4 配置文件解析 497
8.3.5 Squid应用案例 498
8.4 HAProxy负载均衡 502
8.4.1 HAProxy简介 502
8.4.2 配置文件解析 503
8.4.3 HAProxy应用案例 505
8.5 Nginx高级应用 509
8.5.1 Nginx负载均衡简介 509
8.5.2 Nginx负载均衡案例 511
8.5.3 Nginx rewrite规则 515
8.6 MySQL高可用 518
8.6.1 MySQL复制简介 518
8.6.2 一步一步实现MySQL复制 519

产品特色