-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

奔跑吧Ansible(第2版):探索自動化配置與部署捷徑

( 簡體 字)
作者:貝殼找房SRE團隊類別:1. -> 程式設計 -> 綜合
譯者:
出版社:電子工業出版社奔跑吧Ansible(第2版):探索自動化配置與部署捷徑 3dWoo書號: 50156
詢問書籍請說出此書號!

缺書
NT售價: 595

出版日:10/1/2018
頁數:412
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121351440
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

本書贏得的贊譽
大規模集群的配置管理工具一直都是提升效率的利器。新浪在 2003年前后開始使用 CFengine;在 2010年前后,為了解決 CFengine的一些問題,逐漸在一些業務中用 SSH進行批量命令執行和配置文件拉取,這種組合一直用到現在,管理著數萬臺服務器,但現在基本上已經以 SSH為主了。本書的譯者在新浪負責很多配置管理系統的開發,以我們的經驗來看,基于 SSH進行配置管理有很多好處,這也是我對 Ansible很感興趣的地方。充分利用系統現成的機制,不僅省去了 Agent的安裝,在數千臺規模的大型數據中心,少一些中心化服務還意味著少了一些路由和安全策略的配置,省去了很多不必要的麻煩。當然,Ansible還有很多吸引人的地方,非常值得你去學習和發現。
——童劍新浪研發中心總經理
Ansible作為自動化系統運維的一大利器,在構建整個體系過程中有著舉足輕重的地位。 DSL、冪等性、playbook、大量的模板等都是它的魅力所在,再加上易封裝、接口調用方便, Ansible正在被越來越多的大公司采用,包括獨立使用以及與其他工具(如 Puppet)結合使用。
本書通過大量簡單易用的實例幫助讀者快速上手,通讀全書會讓你對 Ansible有一個全面的了解,動手操作書中的實例,可快速掌握 Ansible,剩下的就交給你的靈感吧。
——劉宇 @守住每一天,金山西山居架構師《Puppet實戰》作者,《Puppet實戰手冊》譯者之一
對于 DevOps,我自己的理解是運維即開發,人管理代碼,代碼管理機器,而不是人直接管理機器。Ansible幫我們實現了運維人員向運維開發的轉型,讓繁雜、危險的運維工作變得簡單、安全和可控。本書秉承了 Ansible這一工具簡明的一貫特點,不是長篇累牘地講解復雜技術原理,而是列舉了大量簡明的實例,拿來閱讀半小時即可上手解決實際問題。
——程輝 UnitedStack公司創始人兼 CEO
我在幾個小時內就瘋狂地“啃”完了第 1版《奔跑吧 Ansible》的手稿: Lorin妙筆生花,對 Ansible的講解如行云流水。聽到他與 Rene合寫第 2版的時候我感到非常興奮。在第 2版中,兩位作者向讀者展示了如何將一個非常有用的實用工具應用得出神入化,我想不出有什么內容是他們沒有討論到的。
—Jan-Piet Mens,咨詢顧問
Ansible的萬用指南。本書不僅適用于入門,也適用于了解如何使用高級功能提升你的 Ansible技能。 —Matt Jaynes,High Velocity Ops首席工程師
Ansible的美妙在于,你可以從實踐入手,而它又易于快速實現原型,很快就能迭代起來,并且能不斷解決問題。這當然很棒。然而,隨著時間的推移,這種方式會導致知識和理解上的偏差,而且很難去調和。
《奔跑吧 Ansible》(第 2版)恰恰可以解決這個問題。因為它從 Ansible的基礎知識一直
講解到使用 YAML和 Jinja2的復雜性。而且本書還包含許多現成的案例可供學習和測試,
可以幫助讀者深入了解自動化構建與部署生產環境。
在過去幾年的培訓課程和實踐工作中,我總是向同事和客戶推薦這本書。
—Dag Wieers,自由職業 Linux系統工程師, Ansible長期貢獻者和咨詢顧問
本書既為大家提供了簡單功能的講解,同時也深入探討了 Ansible的配置管理方法。本書還包含很多提示和指引,并覆蓋了各種形式的案例,例如 AWS、Windows和 Docker。
—Ingo Jochim, itelligence GMS/CIS Cloud Implementation經理
Lorin和 Rene字字珠璣,妙合無痕。他們手把手帶領讀者完成創建和管理 Ansible項目的所有重要步驟。本書不單單是一本 Ansible的參考書,它還涵蓋了官方文檔中缺少的幾個重要概念和主題。它是 Ansible初學者的優秀學習資源,同時也包含許多對 Ansible中高級使用者很有幫助的概念與技巧。
—Dominique Barton, confirm IT solutions DevOps工程師
不管你是一名新手,還是一名已經在使用 Ansible并且希望繼續取得進步的老程序員,本書都精辟地涵蓋了你所需要了解的內容。它與同類書籍最大的區別在于,它采用了真實的例子,并解釋了如何實現以及為什么會這樣,這一大特點將幫助你更加深入地理解 Ansible。
—Paul Angus, ShapeBlue技術 VP

第2版譯者序
距離上一版《奔跑吧 Ansible》中文版問世已經兩年有余,非常榮幸還能主導本次第 2版的翻譯工作。自第 1版出版后,不管是大規模服務器配置管理、Ansible社區,還是我的工作,都有了很多變化。
我從專注于運維能力提升的專家崗位上離職,轉而回歸基礎設施研發與運維團隊的技術管理工作。在新的崗位上,我有三個深切的感觸:第一,自動化配置管理領域的觸角已經深入網絡設備領域;第二,在數據中心與 IT基礎設施中,仍然有部分領域難以避免地使用 Windows操作系統;第三,容器化接過云計算的接力棒,正在席卷整個行業。也許是作者也和我有類似的感受,第 2版《奔跑吧 Ansible》如期而至,添加了 Windows管理和網絡設備管理的相關章節。同時,還重寫了 Docker一章。
除了行業的變化外,Ansible的大版本也來到了 2.x。在這個大版本中,Ansible帶來了不少改變與新特性。使用 Ansible新版本的同時,繼續使用第 1版的《奔跑吧 Ansible》作為工具書顯然會讓讀者產生很多困惑,第 2版的出版恰好可以解決這個問題。
在第 2版的翻譯中,我嘗試讓我所管理的 SRE團隊都參與到本書的翻譯工作中,感謝各位同事的辛勤勞動。參與翻譯的人員如下:楊振振(第 1章和第 15章)、劉德鑫(第 2至 4章)、高雪(第 5至 7章)、張冠男(第 8至 9章和第 19章)、劉陽龍(第 11至 12章和第 18章)、李震(第 10章、第 16至 17章)以及劉志遠(第 13至 14章)。

第1版譯者序
由于諸多原因,早在童年時代計算機就進入了我的生活。對計算機的迷戀最終將我帶進了計算機工程領域。而讓我真正從玩耍轉向工程化地對待計算機的分水嶺是,對系統管理領域的接觸。好吧,不管多么不樂意,這類工作在那個年代就是被稱作網管。從我剛開始入門系統管理的時候,我就一直有一個疑問:如果一家公司足夠大,有上百臺計算機,該怎么管理呢?總不能一臺臺遠程桌面連上去吧?嗯,沒錯,那個時候我使用的還是 Windows,而上百臺計算機對于當時的我來說已經是一個很夸張的數字了。2007年我加入新浪平臺架構部,這里的工作為我真正打開了新世界的大門。那個時候,部門正在使用 CFEngine管理上百臺機器、為不同功能的服務器劃分角色、為相同功能的服務器進行編號(像為公牛編號那樣)、為配置文件編寫模板來減少硬編碼,所有這一切都用一種工程實踐的方法解決了我之前的所有疑問。后來,我才知道這個實踐性很強的方法的名字——配置管理。轉眼之間,我已經在新浪工作了七年之久。這七年間,我的職位與工作內容有多次變化,但所圍繞的工作核心從未改變:如何讓數千臺服務器按照我們想要的方式運轉。為了更好地達到這一目的,我嘗試過各種配置管理的方式:從 CFEngine到 Puppet、SaltStack,甚至是自行開發配置管理工具。但是每一種方式都與我理想中那個遵循“ KISS原則”、易于學習,且在功能上具有無窮擴展空間的配置管理工具相差甚遠——直到經同事文旭的推薦,我認識了 Ansible。Ansible的輕量、最小化抽象層及輕松擴展與收縮一下子就吸引了我。到目前為止,它是與我理想中的配置管理工具最接近的一個。這樣優秀的工具我當然不會自己獨享。我曾經在各種場合向正在尋找合適配置管理工具的朋友與同事推薦 Ansible。我發現有一部分朋友雖然給予了 Ansible正面的評價,卻對缺少中文文檔感覺略有不便。這讓我意識到語言仍舊是部分技術人員學習的障礙之一。顯然,我并不具備幫助技術人員提升英語閱讀水平的能力,但至少我可以將這本《奔跑吧 Ansible》的中文版帶給大家,希望本書可以幫助一些讀者快速上手 Ansible。
由于水平所限,本書中難免出現一些翻譯錯誤,誠懇地歡迎大家向我或者出版社反饋本書中的各種錯誤。
最后,我想要感謝趙新宇、陳明杰和劉宇等朋友,他們在我翻譯本書的過程中為我提供了無私的幫助和支持。還要感謝我的夫人張若金的支持與理解。沒有你們就不會有本書的出版。


2012年 2月 Ansible創立的時候,它還是一個非常簡單的項目,隨后它的快速發展令我們十分驚喜。現在,它已經是上千人參與開發的產品了(如果包括參與貢獻想法的人還會更多),并且幾乎在每個國家都有人在使用。在各種技術會議中也總是能找到一些人在使用它,這在計算機領域是一件很不尋常的事。
Ansible的不平凡源自于它的平凡。Ansible并不企圖做盤古開天地般的創新,而是從那些聰明的家伙已經提出的想法中提煉出精華,并將這些想法盡可能地落地。
Ansible旨在探求某些學術上的 IT 自動化方法(它們本身就是對大型繁雜的商業套件的一種反映)與簡單粗暴解決問題的腳本之間的平衡點。另外,我們如何能將配置管理系統、部署發布系統、編排系統(orchestration project)以及千奇百怪但是非常重要的 shell腳本庫用一個單一系統替換呢?這恰恰是 Ansible 要實現的。
我們可以從 IT自動化技術棧中移除主要架構組件嗎?去掉管理性守護進程,轉而依賴于 OpenSSH,意味著系統轉眼間就可以開始管理一臺新的計算機,而不需要在被管理的機器上安裝任何東西。更深一層來說,系統更趨于可靠和安全。
我注意到,嘗試使用自動化系統本該使事情變得簡單,但實際上卻變得更難了。并且編寫以自動化為目的的東西就好像一個吸收時間的黑洞,使我無法在本應該更專注的事情上投入更多時間。況且我并不想在這種系統上投入數個月以成為這個領域的專家。
我個人尤其享受編寫新的軟件,而不喜歡在使其自動化方面花太多時間。簡而言之,我希望自動化的事情盡快完成,這樣我就能將更多時間投入到我更關注的事情上。Ansible并不是一個你需要整天和它打交道的系統。你可以很快把它拿起來,很快搞定,然后又很快回到你更關心的事情上面。我希望這些也會成為你喜歡 Ansible 的原因。
我花了大量時間來確保 Ansible的文檔易于理解和掌握,其他渠道也還有很多不同形式的材料可以參考,參考這些資料進行實踐是大有裨益的。在本書中, Lorin使用非常流暢的行文、適于逐步探索的順序介紹了 Ansible。Lorin 幾乎是從最開始就參與到 Ansible 項目中的,我真誠地感謝他做出的貢獻。我還要真誠地感謝今天項目中的每一位成員,以及未來的每一位成員。
最后,希望大家喜歡這本書,享受瞬間就可以管理你的計算機的愉悅感!啊,對了,別忘記安裝 cowsay! 1
—Michael DeHaan,Ansible 軟件的創作者,Ansible公司前 CTO2 2015 年 4 月
內容簡介:

Ansible是近年來急速發展的開源配置管理工具。在Ansible之前,行業中已經有很多開源配置管理工具了,特別是大名鼎鼎的Puppet,簡直是配置管理工具中的超級巨星。然而,Ansible依靠它的簡單易用、“零依賴”以及弱抽象獲得了無數開發者和運維工程師的青睞。遺憾的是,除了官方文檔外,Ansible相關的優秀文檔鳳毛麟角,而本書恰恰就是為了緩解這一問題而編寫的。作者在本書中演示了如何使用Ansible管理接近真實生產環境的案例。既展現了Ansible的強大功能,又能夠幫助讀者快速入門與上手,本書非常適合作為官方文檔的補充或者搭配閱讀。特別值得一提的是,本書第2版還增加了管理Windows服務器和網絡設備方面的章節,并重新編寫了Docker相關章節,及時地對第1版中的不足進行了改進。


目錄:

序. .................................... xxiii
第 2版前言. .......................... xxv
第 1版前言. ........................ xxvii
第 1章 簡介........................... 1
關于版本的說明 .................... 2
Ansible的優勢 ...................... 2
Ansible如何運作 .................. 3
Ansible的精妙設計賞析 ....... 4
易讀的語法.................... 4
遠程主機無須安裝依賴 . 5
基于推送模式 ................ 5
使用 Ansible管理小規模環境 ................................... 6
內置模塊 ....................... 6
非常輕量的抽象層 ........ 7
Ansible太過于簡單了嗎 ....... 8
需要哪些基礎知識 ................ 8
哪些內容不會涉及 ................ 9
安裝 Ansible ....................... 10
建立一臺用于測試的服務器 ........................................... 11
使用 Vagrant來創建測試服務器 ............................. 11
將測試服務器的信息配置在 Ansible中 .................. 14
使用 ansible.cfg文件來簡化配置 ............................ 16
展望 .................................... 19

第 2章 playbook:一切的開始. 20
一些準備工作 ..................... 20
一個簡單的 playbook .......... 21
定義 Nginx的配置文件 ........................................... 23
創建一個定制的首頁 ... 24
創建一個 webservers群組 ....................................... 25
運行這個 playbook .............. 25
YAML格式的 playbook ...... 27
文件起始 ..................... 27
注釋 ............................. 27
字符串 ......................... 27
布爾型 ......................... 28
列表 ............................. 28
字典 ............................. 28
分行 ............................. 29
剖析 playbook ..................... 30
play.............................. 31
task .............................. 32
模塊 ............................. 33
將它們整合在一起 ...... 34
執行 Ansible后發生變化了嗎?跟蹤主機狀態 .............. 35
來點更酷炫的:添加 TLS支持 ...................................... 35
生成 TLS證書 ............. 36
變量 ............................. 37
生成 Nginx配置模板 .. 39
handler ......................... 41
運行 playbook.............. 42

第 3章 使用 inventory描述你的服務器................................... 44
inventory文件..................... 44
準備工作:創建多臺 Vagrant虛擬機 ............................. 45
inventory 行為參數 ............. 48
ansible_connection ...... 49
ansible_shell_type ....... 49
ansible_python_interpreter ....................................... 49
ansible_*_interpreter ... 49
改變行為參數的默認值 ........................................... 50
群組 .................................... 50
范例:部署一個 Django應用.................................. 51
別名和端口.................. 54
群組的群組.................. 54
為主機編號(寵物還是公牛 ) ................................. 55
在 inventory內部的主機和組變量 .................................. 55
在各自文件中的主機和組變量 ....................................... 57
動態 inventory..................... 59
動態 inventory腳本接口 ......................................... 60
編寫動態 inventory腳本 ......................................... 61
預裝 inventory腳本 ..... 65
將 inventory分割到多個文件 ......................................... 65
使用 add_host和 group_by在運行時添加條目 ............... 65
add_host ...................... 65
group_by ..................... 67

第 4章 變量與 fact................ 69
在 playbook中定義變量 ..... 69
檢查變量的值 ..................... 70
registering 變量 ................... 70
fact ...................................... 74
查看與某臺服務器關聯的所有 fact ......................... 75
查看 fact子集 .............. 75
任何模塊都可以返回 fact ........................................ 77
本地 fact ...................... 77
使用 set_fact定義新變量 .... 79
內置變量 ............................. 79
hostvars ....................... 80
inventory_hostname ..... 80
groups .......................... 81
在命令行設置變量 .............. 81
優先級 ................................. 82

第 5章 引入測試應用:Mezzanine. ....................................... 84
為什么向生產環境部署軟件是一件復雜的事 ................. 84
PostgreSQL:數據庫 ... 88
Gunicorn:應用服務器 ........................................... 88
Nginx:Web服務器 .... 89
Supervisor:進程管理器 ......................................... 90

第 6章 使用 Ansible部署 Mezzanine....................................91
列出 playbook中的 task...... 91
組織要部署的文件 .............. 92
變量和秘密變量 .................. 93
使用迭代(with_items)安裝多個軟件包 ...................... 95
向任務中添加 Become語句 96
更新 apt緩存 ...................... 97
使用 Git獲取項目源碼 ....... 98
將 Mezzanine和其他軟件包安裝到 virtualenv中 ......... 100
任務中的復雜參數:稍微跑個題 .................................. 103
配置數據庫 ....................... 106
從模板生成 local_settings.py文件 ................................ 107
運行 django-manage命令 . 110
在應用環境中運行定制的 Python腳本 ..........................111
設置服務配置文件 .... 114
啟用 Nginx配置文件 ........ 117
安裝 TLS證書 .................. 117
安裝 Twitter計劃任務....... 119
playbook全文 ................... 119
在 Vagrant虛擬機上運行 playbook ............................... 123
故障排查 ........................... 124
無法拉取 Git倉庫代碼 .......................................... 124
192.168.33.10.xip.io地址不可達 ........................... 124
錯誤的請求(400) .... 125
將 Mezzanine部署到多臺主機 ..................................... 125

第 7章 role:擴展你的 playbook........................................126
role的基本構成 ................ 126
范例: database和 mezzanine role ................................ 127
在你的 playbook中使用 role ........................................ 127
pre-tasks和 post-tasks ....... 129
用于部署數據庫的 database role ................................... 130
用于部署 Mezzanine的 mezzanine role ........................ 132
使用 ansible-galaxy創建 role文件與目錄 .................... 137
從屬 role ........................... 138
Ansible Galaxy.................. 139
Web界面 ................... 139
命令行工具................ 139
將你自己的 role發布到 Galaxy............................. 140

第 8章 復雜的 playbook....... 141
處理不良行為的命令: changed_when和 failed_when . 141
過濾器 ............................... 145
默認過濾器................ 145
用于注冊變量的過濾器 ......................................... 145
應用于文件路徑的過濾器 ..................................... 146
編寫你自己的過濾器 . 147
lookup ............................... 148
file ............................. 149
pipe............................ 150
env ............................. 150
password.................... 150
template ..................... 151
csvfile ........................ 151
dnstxt ......................... 152
redis_kv ..................... 153
etcd ............................ 154
編寫你自己的 lookup插件 .................................... 155
更復雜的循環 ................... 155
with_lines .................. 156
with_fileglob ............. 156
with_dict .................... 157
將循環結構用作 lookup插件 ................................ 158
循環控制 ........................... 158
設置變量名稱 ............ 158
為輸出增加標簽 ........ 160
include .............................. 161
動態引用 ................... 162
role include ................ 162
block ................................. 164
利用 block進行異常處理 .. 164
使用 Vault加密敏感數據 .. 168

第 9章 自定義host、run和 handler. ...................................170
通過模式匹配指定主機..... 170
限制運行的主機 ................ 171
在控制主機上運行 task ..... 171
在涉及的主機以外的機器上運行 task .......................... 172
逐臺主機運行 ................... 173
一次運行一批主機 ............ 174
只執行一次 ....................... 175
運行策略 ........................... 175
linear策略 ................. 176
free策略 .................... 177
高級 handler...................... 179
Pre和 Post task中的 handler ................................. 179
flush handler .............. 180
handlers listen ............ 182
手動采集 fact .................... 188
從主機獲取 IP地址 .......... 189

第 10章 回調插件. ................ 191
stdout插件 ........................ 191
actionable 插件 .......... 192
debug插件 ................ 192
dense插件 ................. 193
json插件 ................... 193
minimal插件 ............. 194
oneline插件 .............. 195
selective 插件 ............ 195
skippy插件................ 195
其他插件 ........................... 195
foreman插件 ............. 196
hipchat插件 .............. 196
jabber插件 ................ 197
junit插件 ................... 197
log_plays插件 ........... 198
logentries插件........... 198
logstash插件 ............. 198
mail插件 ................... 199
osx_say插件 ............. 199
profile_tasks插件 ...... 199
slack插件 .................. 200
timer插件 .................. 200

第 11章 讓 Ansible快到飛起..201

SSH多路復用以及長連接保持 ..................................... 201
手動啟動 SSH多路復用 ........................................ 202
Ansible中的 SSH多路復用配置........................... 203
流水線 ............................... 205
啟用流水線................ 205
將主機配置為支持流水線 ..................................... 205
fact緩存............................ 207
JSON文件作為 fact緩存后端 ............................... 208
Redis作為 fact緩存后端 ...................................... 209
Memcached作為 fact緩存后端 ............................. 209
并行 .................................. 210
異步執行并發任務 ............ 211

第 12章 自定制模塊..............213
范例:檢測遠程服務器是否可達 .................................. 213
使用 script模塊而不是自己寫模塊 ............................... 213
實現 can_reach模塊.......... 214
在哪里放置自定制模塊..... 214
Ansible如何調用模塊 ....... 215
用參數生成一個獨立的 Python腳本(只限于 Python模塊) ............................ 215
將模塊復制到服務器 . 215
在服務器上創建一個參數文件(只限于非 Python模塊) ................................. 215
調用模塊 ................... 216
期望輸出 ........................... 216
Ansible的輸出變量 ... 217
用 Python實現模塊 .......... 217
解析參數 ................... 219
獲取參數的值 ............ 220
導入 AnsibleModule輔助類 .................................. 220
參數選項 ................... 221
AnsibleModule的初始化參數 ............................... 223
返回成功或失敗 ........ 227
調用外部命令 ............ 227
檢查模式 (演習模式 ) ........................................... 229
文檔化你的模塊 ................ 230
調試模塊 ........................... 231
使用 Bash實現模塊 .......... 233
指定 Bash的解釋器路徑... 234
示例模塊 ........................... 235

第 13章 Vagrant................236
Vagrant的便捷配置選項 ... 236
端口轉發和私有 IP地址 ....................................... 236
代理轉發 ................... 238
Ansible置備器 .................. 238
置備器何時運行 ................ 239
由 Vagrant生成 inventory . 239
并行配置 ........................... 240
指定群組 ........................... 241
Ansible本地置備器 .......... 242

第 14章 Amazon.EC2. ........244
術語 .................................. 246
實例 ........................... 246
Amazon 系統鏡像 ..... 246
標簽 ........................... 247
指定認證憑據 ................... 247
環境變量 ................... 248
配置文件 ................... 248
必要條件: Boto Python 庫 ........................................... 249
動態 inventory................... 249
inventory 緩存 ........... 251
其他配置項................ 252
自動生成群組 ............ 252
使用標簽定義動態群組..... 253
把標簽應用到現有資源 ......................................... 253
更好聽的群組名 ........ 254
EC2 Virtual Private Cloud和 EC2 Classic ..................... 255
配置 ansible.cfg 支持使用 EC2 ..................................... 256
啟動新的實例 ................... 256
EC2 密鑰對 ....................... 258
創建新的密鑰 ............ 258
上傳已有密鑰 ............ 260
安全組 ............................... 260
允許的 IP 地址 .......... 261
安全組端口................ 262
獲取最新的 AMI ............... 262
向群組中添加一個新的實例 ......................................... 264
等待服務器啟動 ................ 266
創建實例的冪等性方法..... 267
全部加在一起 ................... 267
指定 Virtual Private Cloud 270
動態 inventory和 VPC .......................................... 274
構建 AMI .......................... 274
使用 ec2_ami模塊 .... 274
使用 Packer ............... 275
其他模塊 ........................... 279

第 15章 Docker.................280
Docker與 Ansible配合案例 ......................................... 281
Docker應用的生命周期 .... 282
樣例應用: Ghost .............. 283
連接到 Docker Daemon..... 283
在本地機器上運行容器..... 283
從 Dockerfile 構建鏡像 ..... 284
在本機上對多個容器進行編排 ..................................... 286
推送鏡像到 Docker registry .......................................... 287
查詢本地鏡像 ................... 289
部署 Docker化的應用 ...... 291
后端: Postgres .......... 291
前端 ........................... 292
前端: Ghost .............. 293
前端: Nginx ............. 293
清除容器 ................... 294
直連容器 ................... 294
Ansible Container .............. 296
Conductor .................. 296
創建 Docker鏡像 ...... 297
本地運行 ................... 301
發布鏡像到 registry ... 302
將容器部署到生產環境 ......................................... 303

第 16章 調試 Ansible.playbook. ........................................304
人類可讀的錯誤信息 ........ 304
調試 SSH問題 .................. 305
debug模塊 ........................ 307
playbook調試器 ............... 307
assert模塊 ......................... 309
在執行前檢查你的 playbook ......................................... 311
語法檢查 ................... 311
列出 host ................... 311
列出 task .................... 312
檢測模式 ................... 312
顯示文件變化 ............ 313
限制指定的 task運行 ........ 313
step ............................ 313
start-at-task ................ 314
tags ............................ 314

第 17章 管理 Windows主機..316
連接到 Windows ............... 316
PowerShell ........................ 317
Windows 模塊 ................... 320
第一個 playbook ............... 320
升級 Windows ................... 321
添加本地用戶 ................... 323
結論 .................................. 326

第 18章 使用 Ansible管理網絡設備......................................327
網絡模塊現狀 ................... 327
所支持的網絡供應商列表 . 328
網絡設備的準備工作 ........ 328
支持 SSH身份驗證 ... 329
模塊如何工作 ................... 331
我們的第一個 playbook .... 332
網絡模塊中的 inventory和變量.................................... 333
本地連接 ................... 335
連接配置 ................... 335
身份驗證變量 ............ 336
保存配置 ................... 336
使用文件中的配置 ............ 338
模板,模板,模板 ............ 341
收集 fact ............................ 344
結論 .................................. 345

第 19章 Ansible.Tower:Ansible企業版. ............................346
訂閱模式 ........................... 347
試用 Ansible Tower ... 347
Ansible Tower能解決什么問題 .................................... 348
訪問控制 ................... 348
項目管理 ................... 349
inventory管理 ........... 350
按作業模板運行作業 . 351
RESTful API ..................... 354
Ansible Tower的命令行 ... 354
安裝 ........................... 355
創建用戶 ................... 355
運行作業 ................... 357
以終為始 ........................... 358
附錄A SSH.......................359
附錄B 在 EC2認證中使用 IAM.role.....................................369
術語表................................373
參考文獻..............................379
序: