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