天天看點

《Ansible權威指南 》一第3章 Ansible Ad-Hoc指令集

本節書摘來自華章出版社《ansible權威指南 》一書中的第3章,第3.1節,李松濤 魏 巍 甘 捷 著更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

第2章介紹了ansible的各項元素、系列指令、inventory基礎,以及ansible與正則的結合使用,這些内容是掌握ansible的基礎,請務必熟練掌握。在前兩章的基礎上,本章為大家介紹ansible ad-hoc指令集,通過模拟真實的企業案例和應用場景更深入地了解ansible。作為ansible最常用的指令,本節内容顯得尤為重要。

所謂ad-hoc,簡而言之是“臨時指令”,英文中作為形容詞有“特别的,臨時”的含義。ad-hoc隻是官方對ansible指令的一種稱謂,大家按各自習慣稱呼即可。筆者平時一般稱之為“臨時操作”或ansible指令。

從功能上講,ad-hoc是相對ansible-playbook而言的,ansible提供兩種完成任務方式:一種是ad-hoc指令集,即指令ansible,另外一種就是ansible-playbook了,即指令ansible-playbook。前者更注重于解決一些簡單或者平時工作中臨時遇到的任務,相當于linux系統指令行下的shell指令,後者更适合于解決複雜或需固化下來的任務,相當于linux系統的shell scripts。通常,深入ansible是從接觸ansible-playbook開始的,靈活運用ansible-playbook才能更好地體會到ansible的強大所在。

具體來講,什麼樣的場景下我們需要用到ad-hoc,什麼樣的情況下需要使用ansible-playbook呢?

(1)需要使用ad-hoc的場景

情景1:

節假日将至,我們需要關閉所有不必要的伺服器,并對所有伺服器進行節前健康檢查。

情景2:

臨時更新apache &nginx的配置檔案,且需同時将其分發至所有需更新該配置的web伺服器。

(2)需要使用ansible-playbook的場景

新購置的伺服器安裝完系統後需做一系列固化的初始化工作,諸如:定制防火牆政策、添加ntp時間同步配置、添加epel源等。

業務側每周定期對生産環境釋出更新程式代碼。

其實兩者之間關系用急行軍(ad-hoc)和遠征軍(ansible-playbook)來形容可能更容易了解。急行軍需輕裝上陣,注重靈活機動;遠征軍需穩紮穩打,注重長遠規劃。正如我們上面所講,ad-hoc更注重于解決一些簡單或者平時工作中臨時遇到的任務,ansible-playbook更适合于解決複雜的或需固化下來的任務。後面的章節中我們會介紹大量企業實戰場景,相信大家會有更深刻的體會。

繼續閱讀