图书目录

目    录

第1章  开启Linux系统管理与运维的大门 1

1.1  你必须知道的Linux版本问题 1

1.1.1  Linux的内核版本 1

1.1.2  Linux的发行版本 2

1.2  CentOS之于Linux 2

1.3  CentOS 8的特色 3

1.3.1  Web控制台Cockpit 3

1.3.2  文件系统和存储 3

1.3.3  联网 4

1.3.4  OpenSSH 4

1.3.5  虚拟化 4

1.4  Linux运维工程师的技能 4

1.4.1  系统和系统服务 5

1.4.2  网络知识 5

1.5  小结 6

第2章  跟我学CentOS 8的安装 7

2.1  安装CentOS 8必须知道的基础知识 7

2.1.1  磁盘分区 7

2.1.2  静态分区的缺点及逻辑卷管理简介 8

2.1.3  虚拟化和VMware Workstation简介 9

2.1.4  下载CentOS 8 10

2.2  安装CentOS 8 11

2.2.1  创建虚拟机 11

2.2.2  用光盘安装CentOS 8 13

2.2.3  用U盘安装CentOS 8 21

2.2.4  Windows 10 + CentOS 8双系统安装 22

2.2.5  网络安装 25

2.3  Linux的登录 26

2.3.1  首次配置与本地登录 26

2.3.2  远程登录SSH和Xshell工具的使用 28

2.3.3  退出登录 31

2.3.4  重启和关机 31

2.3.5  重置密码 32

2.4  初学者安装过程中遇到的问题 33

2.4.1  Linux分区是否会覆盖原有Windows系统 33

2.4.2  如何安装多个Linux发行版 33

2.4.3  如何删除双系统中的Linux系统 34

2.4.4  主机连不上虚拟机安装的Linux系统 35

2.5  Linux的目录结构 36

2.6  小结 38

第3章  运维必备的网络管理技能 39

3.1  网络管理协议介绍 40

3.1.1  TCP/IP概述 40

3.1.2  UDP与ICMP协议简介 41

3.2  网络管理命令 42

3.2.1  检查网络是否通畅或网络连接速度:ping 42

3.2.2  配置网络或显示当前网络接口状态:ifconfig 44

3.2.3  显示添加或修改路由表:route 46

3.2.4  复制文件至其他系统:scp 46

3.2.5  复制文件至其他系统:rsync 47

3.2.6  显示网络连接、路由表或接口状态:netstat 49

3.2.7  探测至目的地址的路由信息:traceroute 51

3.2.8  测试、登录或控制远程主机:telnet 53

3.2.9  下载网络文件:wget 53

3.3  Linux网络配置 55

3.3.1  Linux网络配置相关文件 55

3.3.2  配置Linux系统的IP地址 55

3.3.3  设置主机名 57

3.3.4  设置默认网关 57

3.3.5  设置DNS服务器 57

3.4  Linux 默认防火墙firewalld 58

3.4.1  firewalld的特性 58

3.4.2  firewalld的基本术语 58

3.4.3  firewalld的使用 59

3.5  Linux 防火墙nftables 61

3.5.1  Linux内核防火墙的工作原理 61

3.5.2  Linux软件防火墙nftables 62

3.5.3  nftables配置实例 70

3.6  Linux高级网络配置工具 73

3.6.1  高级网络管理工具iproute2 73

3.6.2  网络数据采集与分析工具tcpdump 75

3.7  动态主机配置协议 78

3.7.1  DHCP的工作原理 79

3.7.2  配置DHCP服务器 79

3.7.3  配置DHCP客户端 81

3.8  Linux域名服务DNS 81

3.8.1  DNS简介 82

3.8.2  DNS服务器配置 82

3.8.3  DNS服务测试 86

3.9  小结 87

第4章  路由管理 88

4.1  认识路由 88

4.1.1  路由的基本概念 88

4.1.2  路由的原理 89

4.1.3  Linux系统中的路由表 90

4.1.4  静态路由和动态路由 90

4.2  配置Linux静态路由 91

4.2.1  配置网络接口地址 91

4.2.2  接口IP地址与直连路由 94

4.2.3  route命令 95

4.2.4  Linux路由器配置实例 97

4.3  Linux的策略路由 98

4.3.1  策略路由的概念 98

4.3.2  路由表管理 99

4.3.3  规则与路由管理 101

4.3.4  策略路由应用实例 102

4.4  小结 104

第5章  文件共享服务 105

5.1  网络文件系统(NFS) 105

5.1.1  NFS 简介 105

5.1.2  配置NFS服务器 106

5.1.3  配置NFS客户端 110

5.2  文件服务器Samba 110

5.2.1  Samba服务简介 110

5.2.2  Samba服务的安装与配置 110

5.3  FTP服务器 113

5.3.1  FTP服务概述 113

5.3.2  vsftp的安装与配置 114

5.3.3  proftpd的安装与配置 119

5.4  小结 123

第6章  搭建LAMP服务 124

6.1  Apache HTTP服务的安装与配置 124

6.1.1  HTTP协议简介 124

6.1.2  Apache服务的安装、配置与启动 126

6.1.3  Apache基于IP的虚拟主机配置 135

6.1.4  Apache基于端口的虚拟主机配置 138

6.1.5  Apache基于域名的虚拟主机配置 140

6.1.6  Apache安全控制与认证 142

6.2  MySQL服务的安装与配置 147

6.2.1  MySQL的版本选择 148

6.2.2  MySQL的版本命名机制 148

6.2.3  MySQL yum安装 148

6.2.4  MySQL程序介绍 150

6.2.5  MySQL配置文件介绍 151

6.2.6  MySQL启动与停止 153

6.3  PHP的安装与配置 158

6.4  LAMP集成安装、配置与测试实战 158

6.5  MySQL日常维护 163

6.5.1  MySQL权限管理 163

6.5.2  MySQL日志管理 167

6.5.3  MySQL备份与恢复 172

6.5.4  MySQL复制 178

6.5.5  MySQL复制搭建过程 180

6.6  小结 185

第7章  搭建LNMP服务 186

7.1  LNMP服务的安装与管理 186

7.1.1  Nginx的安装与管理 186

7.1.2  PHP的安装 189

7.2  Nginx负载均衡与反向代理 189

7.2.1  Nginx负载均衡设置 189

7.2.2  Nginx反向代理配置 191

7.3  集成Nginx与PHP 192

7.3.1  spawn-fcgi集成方式 192

7.3.2  php-fpm集成方式 195

7.4  LNMP实战 196

7.4.1  第一个PHP程序 196

7.4.2  数据库连接 197

7.4.3  记录查询 198

7.4.4  增加分页 201

7.4.5  添加记录 204

7.4.6  修改记录 206

7.4.7  删除记录 210

7.5  小结 214

第8章  Docker 215

8.1  Docker三大概念——镜像、仓库、容器 215

8.2  安装Docker 216

8.3  Docker仓库和加速器 217

8.4  Docker基础使用命令 218

8.4.1  搜索镜像 218

8.4.2  拉取镜像 218

8.4.3  查看本地镜像列表 219

8.4.4  运行容器 219

8.4.5  停止容器 220

8.4.6  重新运行容器 220

8.4.7  连接MySQL数据库 220

8.4.8  开机自动启动容器 222

8.4.9  删除容器 222

8.4.10  删除镜像 222

8.5  Docker搭建LNMP实战 223

8.5.1  Docker运行MySQL 223

8.5.2  Docker运行PHP-FPM 224

8.5.3  Docker运行Nginx 225

8.6  认识Docker Compose 226

8.6.1  安装Docker Compose 226

8.6.2  Docker Compose搭建LNMP实战 226

8.7  小结 228

第9章  LVS集群 229

9.1  集群技术简介 229

9.2  LVS 集群介绍 230

9.2.1  3种负载均衡技术 230

9.2.2  负载均衡调度算法 233

9.3  LVS集群的体系结构 234

9.4  LVS负载均衡配置实例 235

9.4.1  基于NAT模式的LVS的安装与配置 235

9.4.2  基于DR模式的LVS的安装与配置 239

9.4.3  基于IP隧道模式的LVS的安装与配置 241

9.5  利用集群搭建高可用MySQL平台 243

9.5.1  高可用MySQL平台的功能 243

9.5.2  可选方案对比 244

9.5.3  高可用MySQL平台实现方案 245

9.5.4  搭建MySQL集群 245

9.5.5  搭建负载均衡LVS 254

9.5.6  搭建双机热备HA 258

9.5.7  项目测试 262

9.6  小结 264

第10章  Kubernetes集群搭建 265

10.1  Kubernetes集群 265

10.1.1  什么是Kubernetes 265

10.1.2  Kubernetes集群能解决什么问题 266

10.1.3  Kubernetes体系架构 266

10.2  环境准备 268

10.2.1  硬件配置 268

10.2.2  设置主机名 268

10.2.3  设置主机名解析 269

10.2.4  关闭防火墙、SELinux和交换分区 270

10.2.5  配置内核参数,将桥接的IPv4流量传递到iptables链 271

10.2.6  配置国内的软件源 272

10.3  软件安装 273

10.3.1  安装Docker引擎 273

10.3.2  安装Kubernetes组件 275

10.4  部署Master节点 275

10.4.1  初始化集群 275

10.4.2  配置kubectl工具 276

10.4.3  部署网络 277

10.5  部署Node节点 278

10.5.1  部署Node节点并加入集群 278

10.5.2  查看节点 279

10.6  部署应用 279

10.6.1  通过deployment部署应用 279

10.6.2  通过服务访问应用 280

10.7  部署图形化管理工具Dashboard 282

10.7.1  创建Dashboard的YAML配置文件 282

10.7.2  部署Dashboard 284

10.7.3  访问Dashboard 286

10.8  小结 287

第11章  高可用性集群:双机热备 288

11.1  高可用性集群技术 288

11.1.1  可用性和集群 288

11.1.2  集群的分类 289

11.2  双机热备开源软件Pacemaker 289

11.2.1  Pacemaker概述 290

11.2.2  Pacemaker的安装与配置 290

11.2.3  Pacemaker资源配置 294

11.2.4  Pacemaker测试 297

11.3  双机热备软件Keepalived 299

11.3.1  Keepalived概述 299

11.3.2  Keepalived的安装与配置 300

11.3.3  Keepalived的启动与测试 302

11.4  小结 303

第12章  KVM虚拟化和oVirt虚拟化管理平台 304

12.1  KVM虚拟化 304

12.1.1  安装KVM虚拟化 304

12.1.2  KVM虚拟机的管理方法 306

12.1.3  使用图形工具创建虚拟机 308

12.1.4  使用virt-install创建虚拟机 311

12.2  oVirt虚拟化管理平台 317

12.2.1  oVirt-engine虚拟化管理平台概述 317

12.2.2  oVirt管理平台的安装 318

12.2.3  oVirt Node安装 320

12.2.4  oVirt Node设置 324

12.2.5  oVirt虚拟化管理平台设置 325

12.2.6  配置资源 328

12.2.7  建立虚拟机 332

12.3  小结 334

第13章  GlusterFS存储 335

13.1  GlusterFS介绍 335

13.1.1  分布式文件系统 335

13.1.2  GlusterFS概述 338

13.1.3  GlusterFS集群的模式 339

13.2  GlusterFS部署和应用 342

13.2.1  GlusterFS的安装 342

13.2.2  配置服务和集群 345

13.2.3  添加磁盘到集群 346

13.2.4  添加不同模式的GlusterFS磁盘 348

13.2.5  在Linux中使用GlusterFS存储 349

13.3  小结 351

第14章  配置OpenStack私有云 352

14.1  OpenStack概况 352

14.2  OpenStack的系统架构 353

14.2.1  OpenStack的体系架构 353

14.2.2  OpenStack的部署方式 354

14.2.3  计算模块Nova 355

14.2.4  分布式对象存储模块Swift 356

14.2.5  虚拟机镜像管理模块Glance 357

14.2.6  身份认证模块Keystone 357

14.2.7  控制台Horizon 358

14.3  OpenStack的主要部署工具 358

14.3.1  Fuel 358

14.3.2  TripleO 359

14.3.3  RDO 359

14.3.4  DevStack 359

14.4  通过RDO部署OpenStack 359

14.4.1  部署前的准备 360

14.4.2  配置安装源 360

14.4.3  安装PackStack 360

14.4.4  安装OpenStack 361

14.5  管理OpenStack 364

14.5.1  登录仪表盘 364

14.5.2  用户设置 366

14.5.3  管理用户 367

14.5.4  管理镜像 368

14.5.5  管理云主机类型 370

14.5.6  管理网络 371

14.5.7  管理实例 378

14.6  小结 385

第15章  配置OpenNebula云平台 386

15.1  OpenNebula概述 386

15.1.1  云计算概述 386

15.1.2  OpenNebula概述 387

15.2  OpenNebula的安装 388

15.2.1  控制端环境配置 388

15.2.2  控制端安装 389

15.2.3  客户端安装 392

15.2.4  配置控制端和客户端 392

15.3  OpenNebula的配置与应用 398

15.3.1  配置VDC和集群 398

15.3.2  添加KVM主机 400

15.3.3  建立映像 402

15.3.4  添加虚拟网络和模板 405

15.3.5  创建并访问虚拟机 406

15.4  小结 408

附录A  Linux常用命令示例 409

A.1  文件管理 409

A.1.1  复制文件:cp 409

A.1.2  移动文件:mv 411

A.1.3  创建文件或修改文件时间:touch 412

A.1.4  删除文件:rm 413

A.1.5  查看文件 415

A.1.6  查看文件或目录:find 418

A.1.7  过滤文本:grep 419

A.1.8  比较文件差异diff 423

A.1.9  在文件或目录之间创建链接:ln 424

A.1.10  显示文件类型:file 425

A.1.11  分割文件:split 426

A.1.12  合并文件:join 428

A.1.13  文件权限:umask 429

A.1.14  文本操作:awk和sed 430

A.2  目录管理 431

A.2.1  显示当前工作目录:pwd 431

A.2.2  创建目录:mkdir 431

A.2.3  删除目录:rmdir 432

A.2.4  改变工作目录:cd 433

A.2.5  查看工作目录文件:ls 434

A.2.6  查看目录树:tree 436

A.2.7  打包或解包文件:tar 437

A.2.8  压缩或解压缩文件和目录:zip/unzip 438

A.2.9  压缩或解压缩文件和目录:gzip/gunzip 439

A.2.10  压缩或解压缩文件和目录:bzip2/bunzip2 440

A.3  系统管理 441

A.3.1  查看命令帮助:man 441

A.3.2  导出环境变量:export 442

A.3.3  查看历史记录:history 443

A.3.4  显示或修改系统时间与日期:date 444

A.3.5  清除屏幕:clear 445

A.3.6  查看系统负载:uptime 445

A.3.7  显示系统内存状态:free 445

A.3.8  转换或复制文件dd 446

A.4  任务管理 447

A.4.1  单次任务:at 447

A.4.2  周期任务:crond 448