《Ansible快速入門:技術(shù)原理與實戰(zhàn)》以新的自動化運維工具Ansible為主要內(nèi)容,側(cè)重于實戰(zhàn),由淺入深地介紹了Ansible以及周邊產(chǎn)品Ansible Galaxy和Ansible Tower的用法。本書共計6章,前4章由淺及深、層層遞進(jìn)地介紹了Ansible的使用方法。第5章著重介紹了Ansible的代碼分享機(jī)制role以及其分享平臺Ansible Galaxy。第6章概括性地介紹了企業(yè)級軟件Ansible Tower。全書的敘述風(fēng)格通俗易懂,沒有過多地引入復(fù)雜的概念,側(cè)重于講解原理,立足于實戰(zhàn),引領(lǐng)Ansible新手輕松入門。
Ansible是近幾年出現(xiàn)的新的自動化運維工具,可以對機(jī)群進(jìn)行軟件安裝、配置和應(yīng)用部署,而《Ansible快速入門:技術(shù)原理與實戰(zhàn)》是一本Ansible入門書籍,煉了Ansible中的精華,側(cè)重于實戰(zhàn),全書代碼均實測過,是一本不可多得的Ansible入門書。
史晶晶,畢業(yè)于吉林大學(xué)計算機(jī)與科學(xué)技術(shù)專業(yè),資深軟件工程師,目前在紅帽軟件從事Linux與云平臺的工具開發(fā)工作。
第1章 Ansible介紹
1.1 Ansible介紹
1.2 Ansible解決了什么運維痛點
1.3 架構(gòu)
1.3.1 Ansible的架構(gòu)
1.3.2 Ansible Tower的架構(gòu)
第2章 Ansible入門
2.1 安裝Ansible
2.1.1 在管理員的電腦上安裝
2.1.2 被管理的遠(yuǎn)程主機(jī)
2.2 Ansible管理哪些主機(jī)
2.2.1 什么是主機(jī)目錄
2.2.2 主機(jī)目錄配置文件
2.3 Ansible用命令管理主機(jī)
2.3.1 Ansible命令的格式
2.3.2 Ansible命令的功能
2.4 Ansible用腳本管理主機(jī)
2.4.1 執(zhí)行腳本Playbook的方法
2.4.2 Playbook的例子
2.4.3 Play和Playbook
2.5 Ansible模塊
2.5.1 什么是Ansible模塊
2.5.2 在命令行里使用模塊
2.5.3 在Playbook腳本中使用模塊
2.5.4 Ansible模塊的特點
2.5.5 常用模塊
第3章 Ansible進(jìn)階
3.1 Ansible的配置
3.1.1 可以配置什么
3.1.2 Ansible配置文件的優(yōu)先級
3.2 主機(jī)清單
3.2.1 遠(yuǎn)程主機(jī)的分組
3.2.2 設(shè)置連接參數(shù)
3.2.3 變量
3.3 Ansible的腳本Playbook
3.3.1 Playbook的文件格式Y(jié)AML
3.3.2 執(zhí)行Playbook的命令
3.3.3 Playbook的基本語法
3.3.4 變量
3.3.5 Playbook也有邏輯控制語句
3.3.6 重用Playbook
3.3.7 用標(biāo)簽,實現(xiàn)執(zhí)行Playbook中的部分任務(wù)
3.4 更多的Ansible模塊
3.4.1 模塊的分類
3.4.2 Extra模塊的使用方法
3.4.3 命令行查看模塊的用法
3.5 最佳使用方法
3.5.1 寫Playbook的原則
3.5.2 參考別人的Playbook
第4章 Ansible Playbook雜談
4.1 再談Ansible變量
4.1.1 變量的作用域
4.1.2 變量的優(yōu)先級
4.2 使用lookup訪問外部文件或數(shù)據(jù)庫中的數(shù)據(jù)
4.2.1 lookup讀取文件
4.2.2 lookup生成隨機(jī)密碼
4.2.3 lookup讀取環(huán)境變量
4.2.4 lookup讀取Linux命令的執(zhí)行結(jié)果
4.2.5 lookup讀取template變量替換后的文件
4.2.6 lookup讀取配置文件
4.2.7 lookup讀取CSV文件的指定單元
4.2.8 lookup讀取DNS解析的值
4.2.9 更多的lookup功能
4.3 過濾器
4.3.1 過濾器使用的位置
4.3.2 過濾器對普通變量的操作
4.3.3 過濾器對文件路徑的操作
4.3.4 過濾器對字符串變量的操作
4.3.5 過濾器對JSON的操作
4.3.6 過濾器對數(shù)據(jù)結(jié)構(gòu)的操作
4.3.7 過濾器的鏈?zhǔn)?連續(xù)使用
4.4 測試變量或表達(dá)式是否符合條件
4.4.1 測試字符串
4.4.2 比較版本
4.4.3 測試List的包含關(guān)系
4.4.4 測試文件路徑
4.4.5 測試任務(wù)的執(zhí)行結(jié)果
4.5 認(rèn)識插件
4.5.1 插件類型
4.5.2 常用的插件介紹
第5章 role和Ansible Galaxy
5.1 role和Ansible Galaxy的簡要介紹
5.1.1 role
5.1.2 Ansible Galaxy
5.2 role的放置位置
5.2.1 當(dāng)前目錄的roles文件夾下
5.2.2 環(huán)境變量ANSIBLE_ROLES_PATH定義的文件夾
5.2.3 Ansible配置文件中roles_path定義的文件夾
5.2.4 默認(rèn)文件夾/etc/ansible/roles
5.3 在Playbook中如何調(diào)用role
5.3.1 調(diào)用最簡單的role
5.3.2 通過pre_tasks和post_tasks調(diào)整role和任務(wù)的順序
5.3.3 調(diào)用帶有參數(shù)的role
5.3.4 與when一起使用role
5.4 如何寫role
5.4.1 role的完整定義
5.4.2 默認(rèn)變量和普通變量的區(qū)別
5.4.3 tasks/main.yml如何使用變量、靜態(tài)文件和模板
5.5 role的依賴
5.6 Ansible Galaxy網(wǎng)站介紹
5.6.1 從Ansible Galaxy網(wǎng)站上下載role
5.6.2 分享你的role
5.7 演示role的創(chuàng)建和分享
5.7.1 改造單個的Playbook為role
5.7.2 在Ansible Galaxy中分享role
第6章 Ansible Tower
6.1 為什么要用Ansible Tower
6.1.1 Ansible和Tower的用戶視角架構(gòu)圖
6.1.2 Ansible Tower的主要功能
6.2 如何使用Ansible Tower
6.2.1 安裝方法
6.2.2 使用方法
6.2.3 總結(jié)
6.3 與第三方平臺的整合
6.3.1 Ansible Tower API
6.3.2 Ansible Tower提供的命令行工具
附錄A