RHEL 8是一個(gè)側(cè)重于企業(yè)級(jí)應(yīng)用的操作系統(tǒng),全書(shū)分3篇(18章及附錄),第1篇是RHEL 8必知必會(huì),介紹用好RHEL 8所需要的基礎(chǔ)知識(shí),如服務(wù)器及企業(yè)級(jí)存儲(chǔ)、單節(jié)點(diǎn)部署、必要的配置、軟件包管理及服務(wù)器硬化等內(nèi)容,為掌握更加復(fù)雜的技術(shù)打下堅(jiān)實(shí)的基礎(chǔ)。第2篇是RHEL 8部署和管理進(jìn)階,側(cè)重點(diǎn)為企業(yè)大規(guī)模的服務(wù)器應(yīng)用、Linux內(nèi)核及進(jìn)程管理及自動(dòng)化管理基礎(chǔ)等。第3篇是企業(yè)高頻服務(wù)和應(yīng)用,介紹如何讓企業(yè)的服務(wù)器助力企業(yè)的業(yè)務(wù),讓RHEL 8的各種服務(wù)及應(yīng)用來(lái)創(chuàng)造價(jià)值等。
Linux系統(tǒng)包羅萬(wàn)象,哪一部分拿出來(lái)都可以寫(xiě)作一本書(shū)。故Linux圖書(shū)不能什么都講,要有重點(diǎn),針對(duì)難點(diǎn),通過(guò)貼近企業(yè)的鮮活應(yīng)用,將RHEL 8轉(zhuǎn)換為實(shí)實(shí)在在的生產(chǎn)力來(lái)創(chuàng)造價(jià)值,所以本書(shū)沒(méi)有連篇累牘的理論,只展開(kāi)能創(chuàng)造生產(chǎn)力和價(jià)值的內(nèi)容。本書(shū)內(nèi)容方面不貪多求全,而是以應(yīng)用為主,力求實(shí)用,在表現(xiàn)形式上言簡(jiǎn)意賅、圖文并茂。
本書(shū)所有操作都是針對(duì)RHEL 8系統(tǒng)平臺(tái)進(jìn)行講解,并反復(fù)測(cè)試了多次,提供相關(guān)虛擬機(jī)。此外,在線資源提供了與本書(shū)相關(guān)的資源,可以節(jié)省讀者的時(shí)間。
本書(shū)核心內(nèi)容
本書(shū)分為3篇,18章及附錄。
第1篇是企業(yè)應(yīng)用RHEL 8必知必會(huì),學(xué)習(xí)用好RHEL 8所需的基礎(chǔ)知識(shí),如服務(wù)器及企業(yè)級(jí)存儲(chǔ)、單節(jié)點(diǎn)部署、必要的配置、軟件包管理及服務(wù)器硬化等內(nèi)容,為掌握更加復(fù)雜的技術(shù)打下堅(jiān)實(shí)的基礎(chǔ)。所以這里根據(jù)企業(yè)的實(shí)際應(yīng)用,精選高頻應(yīng)用實(shí)現(xiàn),大家按圖索驥即可高效應(yīng)用。
第2篇是RHEL 8部署和管理進(jìn)階,側(cè)重點(diǎn)為企業(yè)大規(guī)模的服務(wù)器應(yīng)用,如網(wǎng)絡(luò)多節(jié)點(diǎn)批量部署,Linux內(nèi)核、進(jìn)程管理及自動(dòng)化管理基礎(chǔ),如開(kāi)發(fā)Shell Script和Ansible Playbook腳本等。筆者以最精簡(jiǎn)的內(nèi)容將它們以最穩(wěn)妥的方式實(shí)現(xiàn)并呈現(xiàn)給廣大讀者,將多年經(jīng)驗(yàn)毫無(wú)保留地分享出來(lái)。
第3篇是企業(yè)高頻應(yīng)用和服務(wù),如何讓企業(yè)的服務(wù)器助力企業(yè)的業(yè)務(wù),讓RHEL 8的各種服務(wù)及應(yīng)用來(lái)創(chuàng)造價(jià)值,如流行的Web服務(wù)、數(shù)據(jù)庫(kù)、NoSQL、集群及虛擬化等。第3篇涉及企業(yè)的高頻應(yīng)用,盡管不能面面俱到,但這些都是貼近企業(yè)的高頻應(yīng)用,在本書(shū)的基礎(chǔ)上做適度擴(kuò)展和優(yōu)化,完全可以滿(mǎn)足企業(yè)的實(shí)際需求。
本書(shū)配套資源
鏈接:https://pan.baidu.com/s/1Vg_LnLmQELjgeo6EaNfT-A
提取碼:i6xe
致 謝
首先,感謝自由軟件運(yùn)動(dòng)的發(fā)起人Richard Stallman先生和Linux的創(chuàng)始人Linus先生,是他的身體力行和為自由軟件付出的巨大努力成就了自由軟件的今天,才使得Linux操作系統(tǒng)成為今日軟件創(chuàng)新之主流。
感謝分布于全球的各個(gè)開(kāi)源項(xiàng)目的開(kāi)發(fā)者和參與者,正是因?yàn)槟銈兊臒o(wú)私奉獻(xiàn),才使得開(kāi)源世界如此豐富和美妙!
其次,還要感謝電子工業(yè)出版社李冰編輯十多年來(lái)的支持、鼓勵(lì)和指點(diǎn),她極富耐心和責(zé)任感,使得本書(shū)能夠更加完美地呈現(xiàn)給讀者。
由于圖書(shū)出版周期較長(zhǎng),當(dāng)圖書(shū)出版時(shí),書(shū)中出現(xiàn)錯(cuò)誤和信息未能及時(shí)更新的情況在所難免,希望大家見(jiàn)諒和指正。
何曉龍 于溫哥華
何曉龍(RHCE/AWS/OCP):多年的Linux和數(shù)據(jù)庫(kù)應(yīng)用和管理經(jīng)驗(yàn)及Shell Script,JavaScript和Python等腳本語(yǔ)言開(kāi)發(fā)經(jīng)驗(yàn),精通Windows、Linux、UNIX系統(tǒng),AWS云端技術(shù)及Ansible等自動(dòng)化管理工具,香港《LinuxPilot》雜志專(zhuān)欄作者,著有《完美應(yīng)用Ubuntu》1/2/3版、《從虛擬化到云計(jì)算》,《Ubuntu實(shí)戰(zhàn)技巧精粹》和《完美應(yīng)用SUSE》等多部圖書(shū)
第1篇 企業(yè)應(yīng)用RHEL 8必知必會(huì)
第1章 紅帽企業(yè)版部署和服務(wù)器配置 2
1.1 紅帽企業(yè)版必知必會(huì) 2
1.1.1 GNU/Linux是Linux的全稱(chēng) 2
1.1.2 Linux的誕生 3
1.2 紅帽傳奇 3
1.2.1 紅帽的起源和發(fā)展 3
1.2.2 RHEL的社區(qū)版本CentOS 4
1.2.3 RHEL的版本 4
1.3 服務(wù)器及存儲(chǔ)必知必會(huì) 5
1.3.1 企業(yè)級(jí)PC服務(wù)器和PC的
區(qū)別 5
1.3.2 服務(wù)器端存儲(chǔ)設(shè)備 6
1.3.3 服務(wù)器端存儲(chǔ)技術(shù) 7
1.3.4 LVM令存儲(chǔ)更加靈活 9
1.3.5 服務(wù)器的遠(yuǎn)程管理技術(shù) 10
1.4 RHEL 8部署和管理 10
1.4.1 部署RHEL 8到服務(wù)器 10
1.4.2 Web界面管理RHEL 8 13
1.5 本章小結(jié) 18
第2章 RHEL 8企業(yè)高頻網(wǎng)絡(luò)配置 19
2.1 網(wǎng)絡(luò)參考模型 19
2.1.1 OSI參考模型的提出 19
2.1.2 OSI參考模型的結(jié)構(gòu) 20
2.1.3 DoD的TCP/IP參考模型 20
2.1.4 企業(yè)常用網(wǎng)絡(luò)設(shè)備 21
2.2 RHEL 8的網(wǎng)絡(luò)配置 22
2.2.1 網(wǎng)絡(luò)配置基礎(chǔ)命令 22
2.2.2 配置Bonding 24
2.2.3 配置Bridge 26
2.2.4 停用和啟用IPv6 27
2.3 本章小結(jié) 29
第3章 RHEL 8文件系統(tǒng)和高效命令行
環(huán)境 30
3.1 掌握RHEL文件系統(tǒng) 31
3.1.1 RHEL文件層次結(jié)構(gòu) 31
3.1.2 深入RHEL文件系統(tǒng) 32
3.1.3 絕對(duì)路徑和相對(duì)路徑 34
3.2 通過(guò)Shell進(jìn)入RHEL命令行世界 35
3.2.1 管理RHEL文件系統(tǒng) 36
3.2.2 命令行分身有術(shù)的Tmux 37
3.3 最簡(jiǎn)單小巧的文本編輯器nano 39
3.4 更為專(zhuān)業(yè)的編輯器vi/Vim 41
3.4.1 安裝Vim編輯器 41
3.4.2 配置Vim編輯器 42
3.4.3 Vim高頻操作 42
3.5 Shell可用資源管理命令ulimit 43
3.5.1 ulimit的高頻用法 44
3.5.2 查詢(xún)某個(gè)進(jìn)程的限制 45
3.6 本章小結(jié) 45
第4章 RHEL 8軟件包管理及源代碼編譯
高境界 46
4.1 掌握RHEL軟件包格式 46
4.2 RHEL軟件倉(cāng)庫(kù)管理 47
4.3 RHEL軟件包命令行管理工具 48
4.3.1 最底層的軟件包管理工具
rpm 49
4.3.2 高級(jí)軟件包管理工具 50
4.4 軟件倉(cāng)庫(kù)管理進(jìn)階――EPEL和
ELRepo第三方軟件倉(cāng)庫(kù) 53
4.4.1 EPEL軟件倉(cāng)庫(kù)的使用 53
4.4.2 ELRepo軟件倉(cāng)庫(kù)的使用 53
4.5 高級(jí)應(yīng)用――利用源代碼編譯自己的
軟件包 53
4.5.1 四步從源代碼到可執(zhí)行
文件 54
4.5.2 Linux中的編譯安裝 56
4.5.3 編譯RPM實(shí)例 57
4.5.4 編譯安裝實(shí)例 60
4.6 本章小結(jié) 61
第5章 RHEL 8系統(tǒng)硬化及安全管理 62
5.1 服務(wù)器安全和操作系統(tǒng)的硬化 63
5.1.1 服務(wù)器物理安全 63
5.1.2 操作系統(tǒng)鏡像的安全 63
5.1.3 安全加固共享內(nèi)存及共享
目錄 64
5.1.4 禁用Linux超級(jí)管理員用戶(hù) 64
5.1.5 重視系統(tǒng)的升級(jí)包 64
5.1.6 RPM軟件包的安全 65
5.2 最為基本的安全措施:文件系統(tǒng)權(quán)限
管理 66
5.2.1 權(quán)限管理 66
5.2.2 RHEL默認(rèn)訪問(wèn)權(quán)限 67
5.2.3 通過(guò)權(quán)限符號(hào)修改訪問(wèn)
權(quán)限 68
5.2.4 修改文件的屬主信息 69
5.2.5 特殊的SSS權(quán)限及相關(guān)
操作 69
5.2.6 ACL權(quán)限 70
5.3 SELinux增強(qiáng)系統(tǒng)安全 72
5.3.1 SELinux高頻操作 73
5.3.2 SELinux的模式 74
5.4 RHEL 8的防火墻 75
5.5 集中式遠(yuǎn)程日志管理 80
5.5.1 集中式遠(yuǎn)程日志服務(wù)端 80
5.5.2 集中式遠(yuǎn)程日志客戶(hù)端 81
5.5.3 測(cè)試遠(yuǎn)程日志服務(wù) 81
5.6 本章小結(jié) 81
第2篇 RHEL 8部署和管理進(jìn)階
第6章 自動(dòng)化管理初階:PXE自動(dòng)化
批量部署 83
6.1 自動(dòng)化部署的秘密――Kickstart
文件 83
6.1.1 視而不見(jiàn)的Kickstart文件 83
6.1.2 RHEL 8全新在線創(chuàng)建工具
Kickstart Generator 85
6.2 PXE自動(dòng)化批量部署 89
6.2.1 安裝PXE自動(dòng)部署服務(wù)器 90
6.2.2 創(chuàng)建Kickstart自動(dòng)應(yīng)答文件 92
6.3 本章小結(jié) 93
第7章 揭秘RHEL 8啟動(dòng)流程和初始化
進(jìn)程 94
7.1 Linux最初的啟動(dòng)過(guò)程 94
7.1.1 深入BIOS和UEFI固件 94
7.1.2 深入MBR和GPT分區(qū)表
格式 95
7.1.3 加電自檢 97
7.2 Linux引導(dǎo)程序 98
7.2.1 GRUB Legacy Boot Loader 99
7.2.2 全新GRUB 2引導(dǎo)程序 100
7.3 關(guān)鍵的一號(hào)進(jìn)程 104
7.3.1 經(jīng)典啟動(dòng)方式Sysvinit 104
7.3.2 Sysvinit的替代者Systemd 106
7.3.3 Systemd系統(tǒng)服務(wù)管理 108
7.3.4 Systemd帶來(lái)的操作變化 110
7.4 Linux正常啟動(dòng)之后的系統(tǒng) 113
7.5 本章小結(jié) 114
第8章 RHEL 8內(nèi)核及模塊管理 116
8.1 升級(jí)及編譯RHEL內(nèi)核 116
8.1.1 從官方軟件倉(cāng)庫(kù)Mainline
升級(jí)內(nèi)核 116
8.1.2 從第三方軟件倉(cāng)庫(kù)升級(jí)內(nèi)核
――ELRepo 117
8.2 從內(nèi)核源碼編譯內(nèi)核 117
8.2.1 構(gòu)建編譯內(nèi)核環(huán)境 118
8.2.2 下載最新內(nèi)核源代碼 118
8.2.3 內(nèi)核編譯配置工具 118
8.2.4 配置、裁剪和編譯Linux
內(nèi)核 119
8.3 定制最新的Kernel 5.2編譯參數(shù) 120
8.3.1 較新的5.2內(nèi)核的體系
架構(gòu) 120
8.3.2 裁剪Linux 5.2內(nèi)核 122
8.3.3 裁剪內(nèi)核注意事項(xiàng) 124
8.3.4 編譯裁剪好的內(nèi)核 125
8.4 管理內(nèi)核模塊 125
8.4.1 管理內(nèi)核模塊高頻命令 126
8.4.2 自動(dòng)加載或阻止某個(gè)內(nèi)核
模塊 129
8.5 本章小結(jié) 129
第9章 RHEL 8進(jìn)程和存儲(chǔ)管理 130
9.1 進(jìn)程是Linux系統(tǒng)的基石 130
9.1.1 獲得進(jìn)程的信息 132
9.1.2 管理進(jìn)程 137
9.2 存儲(chǔ)設(shè)備管理 140
9.2.1 獲取磁盤(pán)詳細(xì)信息 141
9.2.2 磁盤(pán)分區(qū)工具 142
9.3 iSCSI的創(chuàng)建和使用 148
9.3.1 iSCSI Target的部署和
配置 148
9.3.2 iSCSI Initiator的部署和
配置 149
9.4 本章小結(jié) 150
第10章 自動(dòng)化管理進(jìn)階:Shell Script
開(kāi)發(fā)思路和實(shí)例 151
10.1 Shell Script開(kāi)發(fā)必知必會(huì) 154
10.1.1 變量的種類(lèi)及相關(guān)操作 154
10.1.2 位置變量 157
10.1.3 特殊變量 157
10.1.4 輸入和輸出語(yǔ)句 158
10.1.5 腳本的邏輯結(jié)構(gòu) 160
10.1.6 循環(huán)結(jié)構(gòu) 165
10.1.7 腳本調(diào)試 169
10.2 Shell Script開(kāi)發(fā)思路和實(shí)踐 169
10.3 本章小結(jié) 175
第11章 自動(dòng)化管理高階:Ansible和
Zabbix的管理自動(dòng)化 176
11.1 Ansible實(shí)現(xiàn)批量應(yīng)用部署和配置 176
11.1.1 準(zhǔn)備工作 177
11.1.2 部署Ansible 177
11.1.3 密鑰的創(chuàng)建和分發(fā) 178
11.2 Ansible實(shí)現(xiàn)批量部署和配置 179
11.2.1 通過(guò)批量執(zhí)行命令進(jìn)行
部署或配置 179
11.2.2 Ansible PlayBook的創(chuàng)建
和使用 180
11.3 Zabbix監(jiān)控企業(yè)服務(wù)器 185
11.3.1 準(zhǔn)備部署Zabbix 186
11.3.2 部署和配置Zabbix
Server 186
11.3.3 Ansible自動(dòng)化部署
Zabbix 188
11.3.4 Web界面安裝Zabbix 189
11.3.5 Zabbix Agent部署和
配置 191
11.3.6 Web管理和使用Zabbix
Server 192
11.4 本章小結(jié) 195
第3篇 企業(yè)高頻應(yīng)用和服務(wù)
第12章 Nginx Web服務(wù)及LEMP/LEPP Stack 197
12.1 部署和配置Nginx Web服務(wù)器 198
12.1.1 部署Nginx Web服務(wù)器 198
12.1.2 深入Nginx配置目錄 199
12.1.3 掌握Nginx Web服務(wù) 199
12.1.4 SSL加密令Nginx Web
服務(wù)器更安全 203
12.1.5 Nginx反向代理 204
12.1.6 Nginx實(shí)現(xiàn)七層負(fù)載均衡 205
12.1.7 全面管理Nginx Web服務(wù) 208
12.2 部署LEMP Stack和LEPP
Stack 208
12.2.1 部署LEMP Stack 209
12.2.2 部署LEPP Stack 210
12.3 本章小結(jié) 212
第13章 徹底掌握MySQL及復(fù)制高
可用集群 213
13.1 MySQL數(shù)據(jù)庫(kù)大家族及版本
選擇 213
13.1.1 紛繁的MySQL數(shù)據(jù)庫(kù)
家族 213
13.1.2 MySQL版本、版本號(hào)和
選擇 215
13.2 部署MySQL 216
13.2.1 從官方軟件倉(cāng)庫(kù)部署
單節(jié)點(diǎn)MySQL數(shù)據(jù)庫(kù)
服務(wù)器 216
13.2.2 源碼包部署單節(jié)點(diǎn)數(shù)據(jù)庫(kù)
服務(wù)器 217
13.2.3 配置MySQL數(shù)據(jù)庫(kù) 220
13.3 MySQL數(shù)據(jù)庫(kù)客戶(hù)端程序
mysql 222
13.4 實(shí)現(xiàn)單節(jié)點(diǎn)多實(shí)例 225
13.5 實(shí)現(xiàn)雙節(jié)點(diǎn)主從復(fù)制 227
13.6 實(shí)現(xiàn)雙節(jié)點(diǎn)雙主復(fù)制 231
13.7 實(shí)現(xiàn)雙節(jié)點(diǎn)雙主復(fù)制并通過(guò)
Keepalived實(shí)現(xiàn)高可用 233
13.8 本章小結(jié) 236
第14章 征服非關(guān)系型數(shù)據(jù)庫(kù)
MongoDB 237
14.1 MongoDB多實(shí)例部署和配置 239
14.1.1 多實(shí)例規(guī)劃 239
14.1.2 下載和部署 239
14.1.3 創(chuàng)建各實(shí)例的配置文件 240
14.1.4 管理多實(shí)例 240
14.2 MongoDB集群分片實(shí)踐 241
14.2.1 MongoDB集群部署準(zhǔn)備 241
14.2.2 部署MongoDB 242
14.2.3 創(chuàng)建MongoDB集群目錄 242
14.2.4 配置和初始化配置
服務(wù)器 243
14.2.5 配置3個(gè)節(jié)點(diǎn)的分片
副本集 245
14.2.6 配置路由服務(wù)器mongos 250
14.2.7 測(cè)試MongoDB集群
分片 253
14.3 本章小結(jié) 256
第15章 駕馭NoSQL先鋒Redis 257
15.1 Redis單節(jié)點(diǎn)多實(shí)例的規(guī)劃、
部署和配置 257
15.1.1 多實(shí)例規(guī)劃 257
15.1.2 部署Redis 258
15.1.3 配置Redis 258
15.1.4 管理Redis多實(shí)例 259
15.1.5 Redis客戶(hù)端的使用 260
15.2 創(chuàng)建Redis集群 260
15.2.1 部署和配置 261
15.2.2 Redis集群節(jié)點(diǎn)目錄規(guī)劃和
創(chuàng)建 261
15.2.3 啟動(dòng)集群的各個(gè)節(jié)點(diǎn) 263
15.2.4 創(chuàng)建和管理Redis集群 263
15.3 本章小結(jié) 266
第16章 Node.js:面向未來(lái)的Web
技術(shù) 267
16.1 部署Node.js 269
16.1.1 準(zhǔn)備工作 269
16.1.2 部署和配置Node.js 269
16.1.3 創(chuàng)建Node.js應(yīng)用及框架
測(cè)試 271
16.2 管理和監(jiān)控Node.js 272
16.2.1 部署PM2 273
16.2.2 PM2運(yùn)行Node.js應(yīng)用 273
16.3 安裝和配置Nginx反向代理 276
16.3.1 部署Nginx 276
16.3.2 配置Nginx 276
16.3.3 一次反向代理多個(gè)網(wǎng)站 276
16.4 本章小結(jié) 277
第17章 RHEL 8集群和負(fù)載均衡
技術(shù) 278
17.1 企業(yè)常用的高可用集群技術(shù) 279
17.1.1 部署Keepalived 281
17.1.2 配置Keepalived的主備
模式 283
17.2 負(fù)載均衡技術(shù) 287
17.2.1 四層和七層負(fù)載均衡項(xiàng)目
HAProxy 287
17.2.2 部署HAProxy 288
17.2.3 HAProxy七層負(fù)載均衡 289
17.2.4 基于四層的負(fù)載均衡 290
17.3 本章小結(jié) 292
第18章 低成本虛擬化方案KVM 293
18.1 X86架構(gòu)虛擬化技術(shù) 293
18.1.1 全虛擬化(FV)和半虛擬化
(PV) 293
18.1.2 寄居架構(gòu)(Hosted)和裸金屬
架構(gòu)(Bara metal)VMM 295
18.1.3 宿主機(jī)(Host)/宿主機(jī)操作
系統(tǒng)(HostOS)和客戶(hù)機(jī)
(Guest)/客戶(hù)機(jī)操作系統(tǒng)
(GuestOS) 296
18.1.4 虛擬機(jī)的主流網(wǎng)絡(luò)模式 296
18.2 KVM虛擬化技術(shù) 298
18.2.1 部署KVM的準(zhǔn)備工作 298
18.2.2 部署KVM及虛擬化管理
程序 299
18.2.3 通過(guò)圖形界面部署KVM
虛擬機(jī) 300
18.2.4 使用命令行創(chuàng)建KVM
虛擬機(jī) 302
18.2.5 SPICE遠(yuǎn)程管理KVM
虛擬機(jī) 306
18.3 管理KVM虛擬機(jī)的基石 307
18.3.1 KVM虛擬機(jī)管理必知
必會(huì) 308
18.3.2 創(chuàng)建虛擬機(jī)快照和克隆 310
18.4 本章小結(jié) 312
附錄A 紅帽分類(lèi)命令行精選 313
附錄B 將RHEL 8打造成強(qiáng)大的
工作站 338
附錄C RHEL 8主推的容器管理工具
Podman 343
附錄D RHEL 8官方社區(qū)版CentOS 8(Vagrant環(huán)境運(yùn)行) 347
附錄E Python 3開(kāi)發(fā)初階 350