民工哥折腾了2年多的《Linux系统运维指南》终于和大家见面了

2018年3月,我与张老师就这么在微信上聊了起来,起初我并没有写书的打算,我们之间只是通过讨论、交流的形式聊聊关于出书的方方面面。最终,敌不过张老师超强的专业能力、细致的解说与盛情相邀,我答应张老师写一本Linux系统运维的图书并由人邮出版。由此,我踏上了漫漫2年多的写书之路。

为什么写这本书

写书一方面是我对自己所学知识的查漏补缺过程,另一方面也可以向即将进入或已经入行的Linux系统运维同行们分享一些经验,以便他们在学习的路上少走一些弯路,对企业实际环境的运维工作有一个完整而清晰的认识,从而更快地进入企业运维工程师的角色。

 

其实,我公众号中的老读者都知道,我是半路出家自学的Linux系统运维,一路上磕磕绊绊、跌跌撞撞,最终算是“小有所成”(自我感觉还是学到与得到了一些),能糊一口饭吃,能够保一家温饱。

回想起自学的那段经历,我至今难忘,挺苦逼的,那时互联网没有这么发达,查找资料也没有现在这么方便、丰富,很多时候只有靠自己看官方资料去慢慢摸索,一个错误几小时、几天可能都难以解决,然后通过不断地总结、再反复练习,方能掌握一个个知识点。

还有一个苦,就是如果你的基础功底不扎实,有时请教别人问题,你都很难将问题描述清楚,别人也很难从你的只言片语中看出你的问题所在,久而久之,不再有人愿意为你解答或提供解答思路。当下,这种情况仍然存在于众多初学者身上,他们总喜欢跳跃式学习,没能重视到学习是一个进阶的过程。这里给大家推荐一下我总结的一些学习方法:民工哥自学方法。

学习与实践总归是不同的。企业里的实际生产运维环境可不是你我能练手的地方,所以,从虚拟机中的练习到企业实际环境的运用,这是一个将学到的知识转化成操作与运用的过程,很多人难以适应一时的转变。这使得很多人在学习的时候感觉自己都会了,但一到企业实际生产环境操作时就慌。

其实这是一个正常现象,民工哥也是这么过来的。不怕出错,怕的是不出错,出错、排错是一个学习的过程,也是一个自我检验的过程,更是一个加深理解的过程。一段时间后,你会发现很多知识点就这样在无形当中学到了、学会了。久而久之,你会发现这真的是一件很有成就感的事!

基于以上的原因,我决心将自己自学的过程以及工作经验总结成书。

 

写书的过程 

很多人不知道写一本书所需的巨大的工作量!这里我稍稍科普一下:

1、确定选题方向——出版社审核——审核通过后签合同。

2、开始写作,其实在这之前,有很大一部分工作量是编写全书的大纲,只有把整个大纲确定了,你才好下笔。

3、分段交稿,这期间编辑会不断将审稿老师的建议反馈给作者,提醒作者后续写作过程中注意避免某些问题,比如:文字口语化严重、标题不可出现4级标题、图表不规范等。

4、全部交稿后,书稿会进入三审三校阶段,在三审期间,可能随时需要作者修改,大到章节安排,小到词句的准确性。这是我和张老师两年来沟通最频繁的时候,有时还起有争议,毕竟双方看待问题的角度不同,但我们的目标是一致的——为了出版一本质量过硬的好书,所以我们最终还是会达成统一的意见。我已经数不清反复修改了多少回,只记得很多次,其中有合并章节、修改格式、统一用法,等等。

5、最终阶段就是确定定价、下厂印刷与销售了。

 

看似很简单顺畅的过程,这其中工作量其实很大,有太多琐碎、繁杂的事。在整个写作过程中,民工哥尽可能地将每一个知识点都表达清楚,所以一直有如履薄冰之感。虽然很苦、很累、很闹心,但看到这本书出版,心里还是会有满满的成就感!

 

今天这本书终于要与大家见面了!

民工哥折腾了2年多的《Linux系统运维指南》终于和大家见面了_第1张图片

以上内容来自作者的公众号文章《 折腾 2 年多!我们终于见面了!》

推荐语

本书结构清晰,从最基本的Linux系统和命令开始,深入到上层常用中间件服务的运维,如Keepalived、Mysql、Apache、Nginx等,再深入到高阶服务的运维管理。作者利用大量的篇幅重点介绍了常用的运维工具和服务,如Zabbix、SCM、容器技术、配置管理和日志服务等。全书内容全面,由浅入深,十分适合作为手边的实战参考书。希望本书能帮助你成为一名Linux运维专家!

——精益运维发起人,优维科技CEO 王津银

民工哥是SegmentFault社区非常活跃的技术专家,也是社区2019年度的“TopWriter”。Linux运维的相关知识非常繁杂,民工哥结合自己的日常经验,从基础命令入手,选择了常用的服务配置作为实战部分,讲解深入浅出,为读者从入门到精通Linux运维指明了一条路。

——思否(SegmentFault)CTO,Typecho开源项目作者

祁宁

民工哥一直活跃在运维圈中,并运营微信公众号“民工哥技术之路”,为运维技术的传播和发展做出了积极的贡献。这本新作值得每一位运维人员收藏和细读。本书从Linux运维入门开始讲起,循序渐进地过渡到企业级运维实战,包括常见的基础应用环境的搭建、数据库系统管理、集群管理等。更难能可贵的是,本书最后还重点介绍了数据备份和运维管理实战。我从这本书中获益良多,也相信它能给你带来一些新的想法和收获。

——新钛云服首席解决方案架构师,

《Linux系统安全:纵深防御、安全扫描与入侵检测》作者胥峰

作者简介:

储成友(民工哥),互联网开源技术爱好者,拥有十余年IT从业经历,在企业信息化建设与系统运维方面经验丰富,专注于系统架构、高可用、高性能、高并发、数据库等开源技术,擅长企业信息化项目建设、运维架构设计与实施。 

目录

基 础 篇 
第1章 操作系统的安装与基础配置 3 
1.1 操作系统的安装 3 
1.1.1 准备Linux操作系统安装文件 3 
1.1.2 配置虚拟机 3 
1.1.3 安装CentOS操作系统 10 
1.2 操作系统的基础配置 15 
1.2.1 修改默认主机名 15 
1.2.2 配置IP地址 16 
1.2.3 为系统添加操作用户 16 
1.2.4 安装常用软件 17 
1.2.5 配置Yum源 17 
1.2.6 关闭防火墙服务 17 
1.2.7 关闭SELinux服务 18 
1.2.8 修改SSH服务默认配置 18 
1.2.9 修改文件描述符 19 
1.2.10 登录超时退出 19 

第2章 Linux系统的目录及重要文件 20 
2.1 系统目录及其作用 20 
2.1.1 根目录结构及其作用 20 
2.1.2 根下常见目录介绍 20 
2.2 Linux系统的重要文件 21 
2.2.1 网卡配置文件 21 
2.2.2 DNS配置文件 22 
2.2.3 系统hosts文件 22 
2.2.4 主机名配置文件 23 
2.2.5 fstab文件 23 
2.2.6 rc.local文件 23 
2.2.7 全局环境变量配置文件 24 
2.2.8 定时任务配置文件 24 
2.2.9 用户相关的配置文件 25 

第3章 新手必备的系统基础命令 26 
3.1 系统管理命令 26 
3.1.1 man命令 26 
3.1.2 ls命令 26 
3.1.3 cd命令 27 
3.1.4 useradd命令 28 
3.1.5 passwd命令 28 
3.1.6 free命令 29 
3.1.7 whoami命令 30 
3.1.8 ps命令 30 
3.1.9 date命令 31 
3.1.10 pwd命令 33 
3.1.11 shutdown命令 33 
3.2 文件目录管理命令 34 
3.2.1 touch命令 34 
3.2.2 cat命令 35 
3.2.3 mkdir命令 36 
3.2.4 rm命令 37 
3.2.5 cp命令 37 
3.2.6 mv命令 38 
3.2.7 find命令 39 
3.3 文件压缩与解压命令 40 
3.3.1 tar命令 40 
3.3.2 zip命令 41 
3.3.3 unzip命令 42 
3.4 磁盘管理命令 43 
3.4.1 df命令 43 
3.4.2 du命令 44 
3.4.3 fdisk命令 44 
3.4.4 mount命令 45 
3.5 网络管理命令 46 
3.5.1 ping命令 46 
3.5.2 wget命令 46 
3.5.3 telnet命令 47 
3.5.4 netstat命令 47 
3.5.5 curl命令 49 
3.5.6 ss命令 49 
3.6 系统性能管理命令 51 
3.6.1 uptime命令 51 
3.6.2 top命令 51 
3.6.3 iostat命令 53 
3.6.4 ifstat命令 55 
3.6.5 lsof命令 55 
3.6.6 time命令 57 
3.7 软件包管理命令 57 
3.7.1 yum命令 57 
3.7.2 rpm命令 59 

第4章 Linux文件系统、用户与权限 61 
4.1 文件系统概述 61 
4.1.1 文件类型 61 
4.1.2 文件属性 62 
4.2 用户与用户组 63 
4.2.1 用户分类 63 
4.2.2 用户组 64 
4.3 用户权限 65 
4.3.1 默认权限 65 
4.3.2 umask值与默认权限的关系 65 
4.3.3 如何修改默认权限 66 
4.4 文件权限 66 
4.4.1 文件权限分类 66 
4.4.2 如何修改权限 67 

第5章 磁盘管理 68 
5.1 磁盘分类 68 
5.2 磁盘的容量计算 68 
5.3 磁盘分区 69 
5.4 磁盘分区工具 69 
5.4.1 fdisk分区工具 69 
5.4.2 parted分区工具 70 
5.5 RAID技术概述 71 
5.5.1 RAID的定义 71 
5.5.2 RAID的级别与分类 72 
5.5.3 RAID的优点 72 
5.5.4 常用RAID对比 72 

第6章 正则表达式与vim编辑器的 
使用 73 
6.1 什么是正则表达式 73 
6.2 字符 73 
6.3 文本处理命令 74 
6.3.1 grep命令 74 
6.3.2 sed命令 74 
6.3.3 awk命令 75 
6.4 正则表达式使用示例 75 
6.5 vim编辑器 75 
6.5.1 什么是vim编辑器 75 
6.5.2 vim编辑器的3种模式 76 
6.6 vim编辑的操作 76 
6.6.1 光标的移动方法 76 
6.6.2 搜索与查找 76 
6.6.3 删除、复制与粘贴 77 
6.6.4 保存与退出 77 

LAMP/LNMP架构篇 


第7章 Apache的安装与配置 81 
7.1 Apache概述 81 
7.1.1 什么是Apache 81 
7.1.2 Apache的应用场景 81 
7.2 安装Apache 81 
7.2.1 安装环境准备 81 
7.2.2 Apache的安装过程 82 
7.3 Apache的目录结构与配置文件 84 
7.3.1 Apache的目录结构与作用 85 
7.3.2 Apache的主配置文件 86 
7.3.3 Apache的日志格式与日志切割 86 
7.4 配置Apache的虚拟主机 88 
7.4.1 配置基于域名的虚拟主机 88 
7.4.2 配置基于端口的虚拟主机 90 
7.5 Apache的优化配置 91 
7.5.1 修改默认用户与组 91 
7.5.2 优化错误页面的显示内容 92 
7.5.3 隐藏Apache的版本信息 92 
7.5.4 配置Apache的日志轮询 93 
7.5.5 优化站点目录权限 94 
7.5.6 开启Apache防盗链功能 94 
7.5.7 禁止PHP程序解析指定站点 

第8章 MySQL与PHP的安装与配置 96 
8.1 MySQL概述 96 
8.1.1 MySQL简介 96 
8.1.2 MySQL版本 96 
8.2 MySQL的部署过程 96 
8.2.1 MySQL常见的安装方式 96 
8.2.2 MySQL的安装与部署 97 
8.3 MySQL的目录结构与配置文件 99 
8.3.1 MySQL的目录结构 99 
8.3.2 MySQL的配置文件 99 
8.4 PHP的安装与配置 100 
8.4.1 准备安装环境 100 
8.4.2 PHP的安装过程 101 
8.4.3 配置Apache支持PHP程序 103 
8.4.4 测试配置 104 
8.4.5 PHP目录 105 

第9章 Nginx的安装与配置 107 
9.1 Nginx概述 107 
9.1.1 什么是Nginx 107 
9.1.2 Nginx的功能 107 
9.1.3 Nginx的优点 107 
9.2 安装Nginx 108 
9.2.1 准备安装环境 108 
9.2.2 安装依赖库 109 
9.2.3 编译和安装Nginx 109 
9.3 配置Nginx支持PHP程序 111 
9.3.1 修改配置文件 111 
9.3.2 启动服务并检查 112 
9.4 Nginx目录与配置文件 114 
9.4.1 Nginx目录结构及其说明 114 
9.4.2 Nginx的配置文件简介 114 
9.5 配置Nginx虚拟主机 115 
9.5.1 配置基于域名的虚拟主机 115 
9.5.2 配置基于IP的虚拟主机 117 
9.5.3 配置基于端口的虚拟主机 119 
9.6 优化Nginx主配置文件 120 
9.6.1 精简主配置文件 120 
9.6.2 拆分主配置文件 121 
9.6.3 开启日志功能 122 
9.6.4 配置Nginx gzip压缩功能 123 
9.6.5 配置expires缓存功能 124 
9.6.6 优化Nginx错误页面 125 

第10章 使用WordPress搭建自己的博客站点 127 
10.1 安装环境 127 
10.1.1 系统环境 127 
10.1.2 软件环境 127 
10.2 准备工作 128 
10.2.1 下载WordPress软件 128 
10.2.2 配置Nginx虚拟主机 128 
10.2.3 创建WordPress数据库 129 
10.3 搭建WordPress博客站点 129 
10.3.1 复制站点文件并授权 129 
10.3.2 安装和配置WordPress 130 

应用服务篇 
第11章 Linux系统登录与管理 139 
11.1 SSH服务概述 139 
11.1.1 什么是SSH服务 139 
11.1.2 SSH服务的认证类型 139 
11.2 SSH服务的操作 140 
11.2.1 SSH服务的安装与启动 140 
11.2.2 SSH相关操作命令 141 
11.3 SSH免密登录实战 142 
11.3.1 环境配置 142 
11.3.2 生成密钥对 142 
11.3.3 分发密钥 143 
11.3.4 测试免密分发数据 144 
11.4 定时任务 144 
11.4.1 什么是定时任务 144 
11.4.2 crond命令 144 
11.4.3 系统定时任务 145 
11.4.4 定时任务的书写与配置 146 
11.5 服务器权限管理 146 
11.5.1 sudo介绍 146 
11.5.2 /etc/sudoers配置文件 147 
11.5.3 编辑配置文件规范 149 
第12章 网络文件系统(NFS)与数据同步 151 
12.1 网络文件系统简介 151 
12.1.1 什么是网络文件系统 151 
12.1.2 NFS实现过程 151 
12.2 NFS的安装与部署 152 
12.2.1 NFS服务端的部署 152 
12.2.2 NFS客户端的部署 154 
12.2.3 客户端安全配置 156 
12.3 NFS客户端挂载优化 157 
12.3.1 挂载参数 157 
12.3.2 优化实例测试 157 
12.4 rsync数据同步服务 158 
12.4.1 rsync服务简介 158 
12.4.2 rsync服务的安装与操作命令 159 
12.4.3 rsync数据同步实战操作 160 
12.5 sersync数据同步服务 162 
12.5.1 sersync服务简介 162 
12.5.2 sersync服务的工作过程 163 
12.5.3 sersync服务的安装准备 163 
12.5.4 安装配置sersync服务 164 
12.5.5 启动sersync服务 166 
12.5.6 测试数据同步 167 

第13章 MySQL服务常用管理 169 
13.1 MySQL的基础管理操作 169 
13.1.1 MySQL服务的启动与停止 169 
13.1.2 MySQL服务的登录和退出 169 
13.1.3 MySQL服务密码修改与找回 171 
13.2 MySQL数据库常用管理操作 172 
13.2.1 创建、删除数据库 173 
13.2.2 连接数据库 174 
13.2.3 创建与删除用户 174 
13.2.4 权限管理 176 
13.3 MySQL数据库表管理 177 
13.3.1 创建表 177 
13.3.2 表结构 178 
13.3.3 表主键 178 
13.3.4 表索引 179 
13.4 表数据操作 181 
13.4.1 插入数据 181 
13.4.2 查询数据 181 
13.4.3 修改(更新)数据 182 
13.4.4 删除数据 183 
13.4.5 表字段的增删 184 
13.4.6 表更名 185 
13.4.7 删除表 185 

第14章 MySQL数据库的备份与恢复 187 
14.1 数据库备份概述 187 
14.1.1 全量与增量备份 187 
14.1.2 数据库备份方法 188 
14.2 MySQL数据库备份操作 188 
14.2.1 库备份 188 
14.2.2 数据库表和表结构备份 191 
14.2.3 备份优化 191 
14.2.4 不同数据库引擎备份的注意事项 192 
14.3 MySQL数据库的恢复 192 
14.3.1 使用source命令 193 
14.3.2 使用mysql命令 193 
14.4 MySQL物理备份工具XtraBackup 193 
14.4.1 什么是XtraBackup 193 
14.4.2 XtraBackup的特点 194 
14.4.3 XtraBackup的备份过程 194 
14.4.4 XtraBackup的增量备份 195 
14.4.5 XtraBackup的恢复 195 
14.4.6 XtraBackup的安装环境 195 
14.4.7 安装XtraBackup 196 
14.4.8 XtraBackup的命令介绍 196 
14.4.9 XtraBackup全量备份与数据恢复 197 
14.4.10 XtraBackup增量备份与数据恢复 200 

第15章 无人值守批量安装操作系统 205 
15.1 PXE技术概述 205 
15.1.1 什么是PXE技术 205 
15.1.2 PXE的工作过程 205 
15.2 KickStart简介 206 
15.3 无人值守安装准备 207 
15.3.1 配置环境 207 
15.3.2 配置HTTP服务 207 
15.3.3 安装与配置TFTP服务 208 
15.3.4 安装与配置DHCP服务 209 
15.4 KickStart部署 209 
15.4.1 配置PXE引导 210 
15.4.2 修改客户端配置文件 210 
15.4.3 配置ks.cfg文件 211 
15.4.4 客户端无人值守安装 213 

第16章 集群架构技术 216 
16.1 集群概述 217 
16.1.1 什么是集群 217 
16.1.2 集群架构的特性 217 
16.2 集群的分类 217 
16.2.1 负载均衡集群 218 
16.2.2 高可用集群 219 
16.2.3 常用集群软硬件 220 
16.3 企业集群架构迭代过程 220 
16.3.1 初期架构 220 
16.3.2 中期架构 222 
16.3.3 终期架构 223 

第17章 Nginx负载均衡 226 
17.1 负载均衡概述 226 
17.1.1 为什么要使用负载均衡 226 
17.1.2 负载均衡简介 226 
17.1.3 负载均衡分类 226 
17.2 Nginx负载均衡简介 227 
17.3 Nginx实现负载均衡的方式 227 
17.4 Nginx负载均衡应用配置 228 
17.4.1 环境准备 228 
17.4.2 Nginx轮询模式负载均衡配置 228 
17.4.3 Nginx权重模式负载均衡配置 229 
17.4.4 Nginx ip_hash模式负载均衡配置 231 
17.4.5 Nginx负载均衡模块参数 232 
17.5 Nginx 的7层代理负载均衡 233 
17.5.1 根据目录实现动静态分离 234 
17.5.2 通过匹配扩展名实现动静态分离 235 

第18章 LVS负载均衡 237 
18.1 LVS服务概述 237 
18.1.1 LVS服务简介 237 
18.1.2 LVS的发展与组成 237 
18.1.3 LVS相关的术语 237 
18.1.4 为什么需要LVS 238 
18.2 LVS的工作模式 238 
18.2.1 网络地址转换模式 238 
18.2.2 隧道模式 239 
18.2.3 直接路由模式 241 
18.2.4 Full NAT模式 242 
18.3 LVS调度算法 242 
18.4 LVS负载均衡部署 244 
18.4.1 LVS服务DR模式部署 244 
18.4.2 LVS服务NAT模式部署 247 
18.4.3 LVS服务TUN模式部署 249 
18.5 ipvsadm命令及参数介绍 251 

第19章 Keepalived高可用集群服务 253 
19.1 高可用概述 253 
19.1.1 什么是高可用 253 
19.1.2 如何构建高可用 253 
19.2 Keepalived高可用服务 254 
19.2.1 Keepalived服务介绍 254 
19.2.2 Keepalived故障切换原理 254 
19.3 Keepalived服务的部署与配置 255 
19.3.1 部署环境 255 
19.3.2 Keepalived服务的部署 256 
19.3.3 Keepalived配置文件详解 257 
19.3.4 Keepalived实例配置 258 

第20章 NoSQL数据库服务的部署与管理 264 
20.1 NoSQL数据库简介 264 
20.1.1 什么是NoSQL数据库 264 
20.1.2 NoSQL数据库的分类 264 
20.1.3 NoSQL数据库的使用场景 265 
20.2 Memcached服务的部署与配置 265 
20.2.1 什么是Memcached 265 
20.2.2 Memcached的工作流程 265 
20.2.3 Memcached的特性与应用场景 266 
20.2.4 Memcached的部署与配置 267 
20.2.5 Memcached操作命令 268 
20.3 Redis服务的部署与配置 270 
20.3.1 什么是Redis 270 
20.3.2 Redis的应用场景 270 
20.3.3 Redis服务的部署 271 
20.3.4 Redis服务的启动与关闭 271 
20.3.5 Redis的数据类型 272 
20.3.6 Redis的管理命令 275 
20.3.7 Redis事务与安全配置 276 
20.3.8 Redis持久化、备份与恢复 277 

第21章 Java Web应用服务器Tomcat服务 280 
21.1 Tomcat服务概述 280 
21.1.1 Tomcat服务简介 280 
21.1.2 Tomcat名称的由来 280 
21.1.3 Tomcat常用版本介绍 280 
21.2 Tomcat服务的部署 281 
21.2.1 环境准备 281 
21.2.2 安装和启动Tomcat 282 
21.3 Tomcat服务的配置 283 
21.3.1 Tomcat目录结构及功能 283 
21.3.2 Tomcat server.xml配置文件简介 284 
21.3.3 Tomcat核心组件 285 
21.3.4 Tomcat日志切割 286 
21.4 Tomcat性能优化 287 
21.4.1 服务器系统优化 287 
21.4.2 网络优化 288 
21.4.3 服务自身优化 289 
21.4.4 集群化 291 

第22章 Zabbix监控服务 293 
22.1 监控体系概述 293 
22.1.1 为什么需要监控 293 
22.1.2 监控目标与流程 293 
22.1.3 监控的对象 293 
22.1.4 监控工具 295 
22.2 Zabbix简介 295 
22.2.1 什么是Zabbix 295 
22.2.2 Zabbix的功能 296 
22.2.3 Zabbix的工作原理 296 
22.3 Zabbix服务的部署与配置 297 
22.3.1 部署环境 297 
22.3.2 部署Zabbix 297 
22.3.3 配置中文支持 302 
22.4 Zabbix相关组件与概念 303 
22.4.1 Zabbix的组件 303 
22.4.2 Zabbix重要概念简介 303 
22.5 Zabbix监控实战操作 304 
22.5.1 Agent端的部署与配置 304 
22.5.2 Web端添加被监控主机 305 
22.5.3 绘制图形展示 306 
22.5.4 配置邮件报警通知 310 

第23章 企业级数据库监控服务 
Lepus 317 
23.1 Lepus概述 317 
23.1.1 Lepus的由来 317 
23.1.2 Lepus监控系统简介 317 
23.1.3 Lepus的功能与特性 317 
23.1.4 Lepus解决的难题 318 
23.2 Lepus的部署 319 
23.2.1 安装环境要求 319 
23.2.2 LAMP基础环境安装 319 
23.2.3 Python基础模块安装 320 
23.2.4 Lepus采集器安装 321 
23.2.5 安装Web管理端 324 
23.3 Lepus配置管理实例 326 
23.3.1 配置监控MySQL 326 
23.3.2 配置监控OS 328 

第24章 企业源代码管理工具 331 
24.1 常见的版本管理工具 331 
24.1.1 VSS 331 
24.1.2 CVS 331 
24.1.3 SVN 331 
24.1.4 Git 331 
24.2 Git的安装 332 
24.2.1 安装所需的依赖包 332 
24.2.2 安装Git 332 
24.3 Git的工作流程与核心概念 333 
24.3.1 Git的工作流程 333 
24.3.2 Git的核心概念 333 
24.4 Git的常用命令与基本操作 333 
24.4.1 仓库管理命令 333 
24.4.2 分支管理命令 334 
24.4.3 查看操作命令 335 
24.4.4 其他命令 336 
24.5 Git代码服务器的搭建 336 
24.5.1 Git协议 336 
24.5.2 环境准备 337 
24.5.3 搭建代码管理服务器 337 

第25章 Docker容器技术入门 340 
25.1 Docker简介 340 
25.1.1 什么是Docker 340 
25.1.2 为什么要使用Docker 340 
25.1.3 Docker名词术语 341 
25.2 Docker的优点与应用场景 342 
25.2.1 Docker的优点 342 
25.2.2 Docker的应用场景 342 
25.3 Docker的部署 344 
25.3.1 Docker的部署要求 344 
25.3.2 Docker的部署操作 344 
25.4 Docker的网络模式 345 
25.4.1 host模式 345 
25.4.2 container模式 345 
25.4.3 none模式 345 
25.4.4 bridge模式 346 
25.5 Docker的数据存储 346 
25.5.1 数据卷 346 
25.5.2 容器卷 350 
25.6 Docker容器的管理 351 
25.6.1 Docker容器的创建与删除 351 
25.6.2 进入与退出容器 352 
25.6.3 Docker容器的运行 353 
25.6.4 Docker容器常用管理 
命令 353 

第26章 Docker镜像仓库的构建与镜像管理 365 
26.1 Docker私有仓库简介 365 
26.1.1 什么是私有仓库 365 
26.1.2 为什么需要私有仓库 365 
26.2 构建Docker私有仓库 365 
26.2.1 部署环境 365 
26.2.2 服务端部署 366 
26.2.3 客户端配置 367 
26.3 私有镜像仓库测试 367 
26.3.1 客户端测试环境准备 367 
26.3.2 上传镜像 368 
26.3.3 下载镜像 368 
26.4 Dockerfile概述 369 
26.4.1 什么是Dockerfile 369 
26.4.2 Dockerfile的组成 369 
26.4.3 Dockerfile的指令分类 370 
26.4.4 Dockerfile指令详解 370 
26.5 通过Dockerfile快速构建镜像 372 
26.5.1 编辑Dockerfile文件 373 
26.5.2 构建过程 373 
26.5.3 通过构建的镜像启动容器 374 

第27章 Docker三剑客 375 
27.1 Docker Machine 375 
27.1.1 什么是Docker Machine 375 
27.1.2 Docker与Docker Machine的区别 375 
27.1.3 安装Docker Machine 375 
27.1.4 Docker Machine命令帮助信息 376 
27.1.5 Docker Machine命令详解 377 
27.1.6 Docker Machine命令实例操作 377 
27.1.7 Docker Machine配置实战 380 
27.2 Docker Compose 382 
27.2.1 什么是Docker Compose 382 
27.2.2 Docker Compose的工作流程 382 
27.2.3 Docker Compose的部署 383 
27.2.4 Docker Compose管理命令 383 
27.2.5 Docker Compose的配置文件 385 
27.2.6 运行Docker Compose配置文件 386 
27.2.7 Docker Compose配置实战 387 
27.3 Docker Swarm 391 
27.3.1 什么是Swarm 391 
27.3.2 Swarm集群版本 391 
27.3.3 Swarm的核心概念 391 
27.3.4 Swarm服务的运行部分 391 
27.3.5 Swarm的调度策略 392 
27.3.6 如何创建Swarm集群 392 
27.3.7 Docker Swarm常用管理命令 393 
27.3.8 Swarm集群的部署 394 
27.3.9 Docker Swarm部署服务实战 401 

第28章 自动化运维工具SaltStack服务 404 
28.1 SaltStack简介 404 
28.1.1 什么是SaltStack 404 
28.1.2 SaltStack的功能与工作方式 404 
28.2 SaltStack的安装与部署 405 
28.2.1 部署环境 405 
28.2.2 SaltStack的安装 405 
28.3 SaltStack认证配置 407 
28.3.1 salt-key命令 407 
28.3.2 配置认证 407 
28.4 SaltStack功能介绍 408 
28.4.1 SaltStack数据系统 408 
28.4.2 SaltStack文件系统 410 
28.4.3 SaltStack远程执行 411 
28.4.4 SaltStack配置管理 414 
28.5 SaltStack的Job管理 416 
28.5.1 Job简介 416 
28.5.2 Job的基本管理 417 

架构运用篇 
第29章 MySQL性能优化及主从同步架构实践 421 
29.1 数据库优化 421 
29.1.1 硬件性能优化 421 
29.1.2 配置文件优化 421 
29.2 MySQL主从同步概述 423 
29.2.1 为什么需要主从同步架构 423 
29.2.2 MySQL主从同步的原理 424 
29.3 MySQL主从同步架构实践 424 
29.3.1 环境准备 424 
29.3.2 配置MySQL主从同步 425 
29.3.3 验证MySQL主从同步 428 
29.3.4 MySQL主从同步常见故障的处理 429 

第30章 MySQL高可用集群与读写分离架构实践 430 
30.1 MySQL高可用架构概述 430 
30.1.1 主从架构 430 
30.1.2 MySQL DRBD架构 431 
30.1.3 MySQL MHA架构 431 
30.1.4 MySQL MMM架构 432 
30.1.5 MySQL Cluster架构 433 
30.2 MHA软件概述 433 
30.2.1 MHA简介 433 
30.2.2 MHA相关工具 434 
30.3 MHA高可用的部署与配置 434 
30.3.1 环境准备 435 
30.3.2 配置SSH免密登录 436 
30.3.3 部署MHA软件 437 
30.3.4 MHA高可用方案配置 437 
30.3.5 测试MHA故障切换 440 
30.3.6 解决实际生产场景问题 441 
30.4 MySQL读写分离架构实践 442 
30.4.1 什么是读写分离 443 
30.4.2 读写分离实现的方式 443 
30.4.3 读写分离工具Atlas简介 443 
30.4.4 Atlas的部署与配置 444 

第31章 搭建企业日志分析平台 449 
31.1 日志概述 449 
31.1.1 日志分类 449 
31.1.2 日志级别 449 
31.2 ELK日志系统 449 
31.2.1 ELK日志系统简介 450 
31.2.2 ELK日志系统的部署 450 
31.2.3 收集系统日志并展示效果 453 
31.3 配置Kibana登录认证 455 

第32章 Linux服务器集群架构案例实践 457 
32.1 LVS+Keepalived集群实践 457 
32.1.1 部署环境 457 
32.1.2 配置Keepalived 457 
32.1.3 启动服务并测试 458 
32.1.4 测试故障切换 460 
32.2 Nginx+Keepalived集群实践 460 
32.2.1 Keepalived与Nginx配置 460 
32.2.2 Nginx+Keepalived双主企业架构实践 463 

第33章 数据备份与运维管理 467 
33.1 数据备份概述 467 
33.2 企业常用的数据备份方法与实践 468 
33.2.1 企业常用的数据备份方法 468 
33.2.2 数据备份实践操作 468 
33.3 运维管理 470 
33.3.1 日常运维 470 
33.3.2 数据运维 471 
33.3.3 安全运维 471 

 

你可能感兴趣的:(民工哥折腾了2年多的《Linux系统运维指南》终于和大家见面了)