隨著業務系統的蓬勃發展,苦逼的運維需要管理的機器越來越多,從all in one 到 幾十 、成百上千、過萬都有可能,往往崗位配置就那麼幾個,面對無此多的裝置管理、配置工作壓力**,為了減少重複頻繁的的工作內容,運維一般會寫很多指令碼+定時任務,完成一定程度上的自動化,不過寫指令碼實現多項功能,對於指令碼功底和所花的時間也不秀氣,為了能夠在基礎平台上實現一定的自動化,不得不求助於外界的一些開源技術來彌補這一不足。當下可選擇的開源使用的自動化工具非常多,代表的有,saltstack、puppet、fabric、chef、ansible等,在這些工具中,我學習使用了saltstack 、puppet、ansible這三款,通過我個人的感受來說,從部署上來說ansible>saltstack>puppet ,通過指令碼語法來說ansible=saltstack>puppet ,熱度上來說ansible>saltstack>puppet,功能上、效率上等方面沒有過多的研究。
一、為什麼選擇ansible
(1)基於python開發,運維開發門檻低(2)ansible模組豐富,基本上滿足日常需求,更新也快(3)ansible去中心化,簡單的複製就可以配置管理中心的遷移(4)ansible 無客戶端,支援linux、windows(5)ansible 可以與雲對接,模組也比較豐富
二、ansible 是如何工作的
ansible沒有客戶端,利用linux的ssh 通訊,windows基於powershell,管理端必須是linux,使用管理節點下發各種指令。
ansible元件介紹ansible playbook:任務劇本,編排定義好的ansible任務集的配置檔案,由ansible依次執行,通常是json格式的yaml檔案。
inventory:ansible 管理主機的清單
modules:ansible執行命令的功能模組,多為內建核心模組,可以以自定義;
plugins:模組功能的補充,連線類外掛程式,迴圈類外掛程式,變數外掛程式,過濾外掛程式等,該功能不常用。
api : 提供給第三方程式呼叫的應用程式程式設計介面。
三、應用場景
(1)應用部署ansible內建網路、應用、系統、第三方雲平台擴充套件等完善的功能模組,協助運維完成快速的應用安裝、解除安裝、公升級、啟動、配置等工作,也支援跨平台的硬體。(2)配置管理ansible內建的file,template,結合jinja、等內建模組,無縫對接github gitlab git svn jenkins等主流版本控制和ci持續整合工具,讓配置管理自動化。(3)任務編排按照指定的要求,按流程、規則、循序的執行計畫,達達提高效率
ansible命令引數介紹
ansible命令引數介紹 m 要執行的模組,預設為command a 模組的引數 u ssh連線的使用者名稱,預設用root,ansible.cfg中可以配置 k 提示輸入ssh登入密碼。當使用密碼驗證的時候用 s sudo執行 u sudo到那個使用者,預設為root k 提示輸入sudo密碼,...
Ansible 外掛程式 操作介紹
一 ansible 外掛程式 之 統計任務處理時間 在做效能優化之前首先需要做的是收集一些統計資料,這樣才能為後面做的效能優化提供資料支援,對比優化前後的結果。非常不錯的是,在 github 發現乙個 ansible 任務計時外掛程式 ansible profile 安裝這個外掛程式後會顯示 ans...
ansible命令引數介紹
ansible命令引數介紹 12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 m 要執行的模組,預設為command a 模組的引數 u ssh連線的使用者名稱,預設用root,ansible.cfg中可以配置 k 提示輸入ssh登入密碼。當使用密碼驗證的...