Linux自動化運維(Shell與Ansible)(微課版)
楊寅冬
相關主題
商品描述
本書以開源Linux系統為操作平臺,通過項目驅動的方式對Linux Shell編程和Ansible自動化工具的基本使用方法進行講解,重點培養學生的實際動手能力和應用能力。
全書共12個項目,內容包括初識Shell腳本、Shell條件控制、Shell條循環控制、Shell數組與函數、sed流編輯器與awk文本處理工具、Ansible自動化概述、Ansible Playbook基本語法、變量與事實、自動化任務控制、Jinja2模板與插件、角色和集合、Ansible自動化管理。本書內容豐富,由淺入深,強調基礎技能的應用,設計項目取材於企業應用實例,並配備知識點微課和項目實訓慕課,適用於理論與實踐一體化教學。通過學習本書的內容,讀者將掌握Linux Shell編程和Ansible自動化工具的基本使用方法,能夠熟練編寫Shell腳本實現自動化任務,並能運用Ansible管理和部署復雜的系統架構。
本書可以作為高等職業院校和應用型本科院校計算機相關專業的教材,也可以作為Linux Shell編程與Ansible自動化運維培訓教材和Linux技術愛好者的參考書,還可以作為ICT、信創、開源Linux相關課程教材。
作者簡介
楊寅冬,安徽郵電職業技術學院計算機與網絡學院教師,實驗師職稱,紅帽高級架構師,主要專業領域集中於 Linux 企業服務、OpenStack 雲平臺、Ansible 自動化運維、容器和Kubernetes等方向,在高校從事Linux操作系統和雲計算方向教學工作,擔任 Linux系統與服務管理、Linux自動化運維、容器技術、OpenStack和Kubernets平臺等課程的教學工作,主編高校教材《Linux系統管理基礎教程》,連續多年獲得紅帽挑戰賽優秀指導教師、華為ICT大賽優秀指導教師榮譽。
目錄大綱
項目1 1
初識Shell腳本 1
1.1 項目描述 1
1.2 知識準備 1
1.2.1 Linux Shell簡介 2
1.2.2 創建和執行shell腳本 6
1.2.3 輸入輸出重定向與管道符 8
1.2.4 數據輸入和輸出 11
1.2.5 shell變量 16
1.2.6 轉義符 23
1.2.7 算術運算 25
1.3 項目實訓 28
1.4 項目實施 28
1.4.1 輸入和輸出重定向 28
1.4.2 數據輸入和輸出 30
1.4.3 shell變量操作 32
1.4.4 算術運算符操作 35
項目練習題 38
項目2 40
Shell條件控制 40
2.1 項目描述 40
2.2 知識準備 40
2.2.1 條件測試語句 40
2.2.2 if條件語句 42
2.2.4 case條件語句 43
2.3 項目實訓 44
2.4 項目實施 44
任務2.4.1 條件表達式語句 44
任務2.4.2 編寫if條件語句腳本 46
任務2.4.3 編寫case條件語句腳本 47
項目練習題 49
項目3 51
Shell循環控制 51
3.1 項目描述 51
3.2 知識準備 51
3.2.1 for循環語句 52
3.2.2 while、 until和select循環語句 52
3.2.4 break、continue和exit語句 54
3.3 項目實訓 55
3.4 項目實施 55
任務3.4.1 編寫for循環語句腳本 56
任務3.4.2 編寫while循環語句腳本 57
項目練習題 58
項目4 61
Shell數組與函數 61
4.1 項目描述 61
4.2 知識準備 61
4.2.1 創建和使用數組 61
4.2.2 創建和使用函數 65
4.3 項目實訓 69
4.4 項目實施 70
任務4.4.1 編寫Shell數組腳本 70
任務4.4.2 編寫Shell函數腳本 71
項目練習題 73
項目5 75
sed流編輯器與awk文本處理工具 75
5.1 項目描述 75
5.2 知識準備 75
5.2.1 正則表達式 75
5.2.2 流編輯器sed 78
5.2.4 awk文本處理工具 80
5.3 項目實訓 85
5.4 項目實施 85
任務5.4.1 正則表達式過濾文本 85
任務5.4.2 sed案例 86
任務5.4.3 awk案例 87
項目練習題 89
項目6 92
6.1 項目描述 92
6.2 知識準備 92
6.2.1 IT基礎設施自動化 93
6.2.2 Ansible簡介 94
6.2.3 Ansible安裝方式與目錄結構 96
6.2.4 清單文件 97
6.2.5 Ansible配置文件及主要參數 101
6.2.6 配置連接和權限提升 103
6.3 項目實訓 105
6.4 項目實施 106
任務6.4.1 CentOS系統上安裝Ansible 106
任務6.4.2 Ubuntu系統上安裝Ansible 107
任務6.4.3 pip安裝包管理器安裝Ansible 108
任務6.4.4 構建清單文件 109
任務6.4.5 構建配置文件 112
項目練習題 114
項目7 116
7.1 項目描述 116
7.2 知識準備 116
7.2.1 Ad Hoc命令 117
7.2.2 YAML基本格式 122
7.2.3 JSON基本格式 124
7.2.4 Playbook基本格式 125
7.3 項目實訓 130
7.4 項目實施 131
任務7.4.1 使用Ad Hoc命令運行臨時任務 131
任務7.4.2 編寫和執行Playbook 133
任務7.4.3 實施多個自動化任務 136
項目練習題 140
項目8 141
8.1 項目描述 141
8.2 知識準備 141
8.2.1 變量概述 142
8.2.2 主機和主機組變量 145
8.2.3 註冊變量 147
8.2.4 事實信息 147
8.2.5 特殊變量 150
8.3 項目實訓 153
8.4 項目實施 153
任務8.4.1 在Playbook中使用變量 154
任務8.4.2 在Playbook中使用多種變量 157
項目練習題 161
項目9 163
9.1 項目描述 163
9.2 知識準備 163
9.2.1 循環語句 164
9.2.2 條件語句 166
9.2.3 實施處理任務 170
9.2.4 任務失敗和異常處理 172
9.2.5 使用塊和標簽分組任務 175
9.3 項目實訓 177
9.4 項目實施 177
任務9.4.1 Plyabook實施循環和條件控制 177
任務9.4.2 實施Playbook任務控制 180
項目練習題 183
項目10 186
10.2 知識準備 186
10.2.1 Jinja2模板基本概念 187
10.2.2 過濾器簡介 190
10.2.3 lookup插件 194
10.3 項目實訓 197
10.4 項目實施 197
任務10.4.1 Jinja2模板生成系統事實信息 198
任務10.4.2 Jinja2模板自定義配置文件 200
任務10.4.3 使用Jinja2模板部署代理服務 203
項目練習題 205
項目11 208
11.1 項目描述 208
11.2 知識準備 208
11.2.1 大項目管理方式 208
11.2.2 角色簡介 214
11.2.3 創建和使用角色 217
11.2.4 Ansible Galaxy部署角色 220
11.2.5 集合簡介 224
11.3 項目實訓 229
11.4 項目實施 229
任務11.4.1 導入和包含任務 229
任務11.4.2 使用角色部署Web和代理服務 232
任務11.4.3 使用集合執行自動化任務 238
項目練習題 243
項目12 245
12.1 項目描述 245
12.2 知識準備 245
12.2.1 常用的自動化管理模塊 246
12.2.2 網絡配置管理 257
12.2.3 網絡設備自動化管理 259
12.2.4 Docker容器自動化模塊 262
12.3 項目實訓 265
12.4 項目實施 266
任務12.4.1 部署yum倉庫安裝軟件 266
任務12.4.2 邏輯卷存儲管理 268
項目練習題 271
拓展閱讀 272
開源:數字化世界的基石 272
中國開源軟件推進聯盟成立 272
UNIX 和中國 273
openEuler與龍蜥Anolis OS 274

