親愛滴伙伴們,今天給大家說說Ansible自動化運維工具的經(jīng)驗分享,接下來由我為大家一步步嘮嘮。
Ansible介紹
Ansible是一個開源配置管理工具,可以使用它來自動化任務(wù),部署應(yīng)用程序?qū)崿F(xiàn)IT基礎(chǔ)架構(gòu)。Ansible可以用來自動化日常任務(wù),比如,服務(wù)器的初始化配置、安全基線配置、更新和打補丁系統(tǒng),安裝軟件包等。
Ansible架構(gòu)相對比較簡單,僅需通過SSH連接客戶機執(zhí)行任務(wù)即可。
Ansible的與節(jié)點有關(guān)的重要術(shù)語包括控制節(jié)點,受管節(jié)點,清單和主機文件:
1)控制節(jié)點(Control node):指安裝了Ansible的主機,也叫Ansible服務(wù)器端,管理機。Ansible控制節(jié)點主要用于發(fā)布運行任務(wù),執(zhí)行控制命令。Ansible的程序都安裝在控制節(jié)點上,控制節(jié)點需要安裝Python和Ansible所需的各種依賴庫。注意:目前Ansible還不能安裝在Windows下。
2)受控節(jié)點(Managed nodes):也叫客戶機,就是想用Ansible執(zhí)行任務(wù)的客戶服務(wù)器。
3)清單(Inventory):受控節(jié)點的列表,就是所有要管理的主機列表。
4)host文件:清單列表通常保存在一個名為host文件中。在host文件中,可以使用IP地址或者主機名來表示具體的管理主機和認證信息,并可以根據(jù)主機的用戶進行分組。缺省文件:/etc/ansible/hosts,可以通過-i指定自定義的host文件。
5)模塊(Modules):模塊是Ansible執(zhí)行特定任務(wù)的代碼塊。比如:添加用戶,上傳文件和對客戶機執(zhí)行ping操作等。Ansible現(xiàn)在默認自帶450多個模塊,,Ansible Galaxy公共存儲庫則包含大約1600個模塊。
6)任務(wù)(Task):是Ansible客戶機上執(zhí)行的操作??梢允褂胊d-hoc單行命令執(zhí)行一個任務(wù)。
7)劇本(Playbook):是利用YAML標記語言編寫的可重復(fù)執(zhí)行的任務(wù)的列表,playbook實現(xiàn)任務(wù)的更便捷的讀寫和貢獻。比如,在Github上有大量的Ansible playbooks共享,你要有一雙善于發(fā)現(xiàn)的眼睛你就能找到大量的寶藏。
8)角色(roles):角色是Ansible 1.2版本引入的新特性,用于層次性、結(jié)構(gòu)化地組織playbook。roles能夠根據(jù)層次型結(jié)構(gòu)自動裝載變量文件、tasks以及handlers等。
Ansible工作原理
Ansible可以簡化管理員的自動化配置管理和流程控制方式。它利用推送方式對客戶系統(tǒng)配置,這樣所有的工作都可以在主服務(wù)器上完成。
運行Ansible的服務(wù)器叫做”管理節(jié)點”,通過Ansible進行管理的服務(wù)器叫做“受控節(jié)點”。
Ansible管理工具的優(yōu)點為:
1)輕量級,更新時只需要在操作機上進行一次更新即可。
2)采用SSH協(xié)議。
3)不需要客戶端安裝agent。
4)批量任務(wù)執(zhí)行可以寫成腳本,并且不需要分發(fā)到客戶端。
5)使用Python編寫,維護簡單。
6)支持sudo普通用戶命令。
7)去中心化管理。
Ansible的原理拓撲圖為:
可以看到Ansible由五部分組成:
1)Ansible :核心。
2)Modules :包括 Ansible 自帶的核心模塊及自定義模塊。
3)Plugins :完成模塊功能的補充,包括連接插件、郵件插件等。
4)Playbooks :劇本;定義 Ansible 多任務(wù)配置文件,由Ansible 自動執(zhí)行。
5)host Inventory :定義 Ansible 管理主機的清單。
Ansible安裝配置
1. SSH分發(fā)
//安裝sshpass
# yum install sshpass -y
//生成密鑰
# ssh-keygen -t dsa -f /root/.ssh/id_dsa -N ""
//分發(fā)密鑰
# vim ~/ssh-fenfa.sh
# sh ~/ssh-fenfa.sh
2. 管理機器安裝部署
// 添加repo
# yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
// yum安裝ansilbe
# yum install ansible -y
# rpm -qa ansible
// 檢查ansible版本
# ansible --version
3. 添加主機清單
# vim /etc/ansible/hosts
4. 測試ansible
# ansible db -m ping
Ansible常用模塊
1. shell模塊
了解一個模塊的時候可以使用ansible-doc命令,在其后加上-h或者–help直接獲取幫助信息,比如現(xiàn)在我們查看shell模塊。還有獲取主機名和查詢系統(tǒng)負載等等。
2. 復(fù)制模塊
Copy模塊的作用是往客戶機上備份文件,在使用之前可以ansible-doc查看了解該模塊。
其中,src代表需要備份的文件路徑,dest代表要備份到的文件路徑,owner與group分別代表備份文件的屬主與屬組,mode代表權(quán)限。完成備份之后我們可以在客戶機上查看是否備份成功。
3. 用戶模塊
顧名思義就是幫助我們管理用戶的模塊,一般可以用來對用戶進行創(chuàng)建、刪除、修改等操作。
創(chuàng)建用戶時我們須要指定用戶名與狀態(tài),這里name表示指定的用戶名,state表示指定用戶的狀態(tài)。
刪除用戶同樣我們也需要指定用戶名與狀態(tài)。
修改密碼:
4. yum模塊(更新所有包和安裝apache)
Ansible工具參數(shù)
Ansible主要參數(shù)詳解:
-v,-verbose:打印詳細模式。
-i PATH,-inventory=PATH:指定host文件路徑。
-f NUM,-forks=NUM:指定fork開啟同步進程的個數(shù),默認是5。
-m NAME,-module-namea=NAME:指定module模塊,默認為command模塊。
-a MODULE_ARGS:module模塊的參數(shù)或者命令。
-k,-ask-pass:輸入遠程被管理端的密碼。
-sudo:基于sudo執(zhí)行。
-K,-ask-sudo-pass:提示輸入sudo密碼與sudo一起使用。
-u USERNAME:執(zhí)行執(zhí)行用戶。
-C,–check:測試執(zhí)行過程,不改變真實內(nèi)容,相當于預(yù)演。
-T TIMEOUT:執(zhí)行命令超時事件,默認為10s。
–version:查看Ansible軟件的版本信息。
文章小結(jié)
運維自動化的價值在于,將運維從繁瑣的、例行、容易發(fā)生人為事故的工作中脫離出來,做更有價值的業(yè)務(wù)運維和服務(wù)運維。所以,從這個角度來看,運維自動化既不是起點,也不是終點。運維自動化,終歸只是一個高級工具而已。
運維的價值最終是要體現(xiàn)在業(yè)務(wù)上的:
體現(xiàn)的方式就是運維服務(wù)化,所以運維自動化(智能化)最終都要為運維的服務(wù)化服務(wù)。
如何構(gòu)建你的自動化系統(tǒng)最終要看你所支撐的業(yè)務(wù)需要什么樣的服務(wù)。所以,在做之前一定要弄清楚我們的目標,然后再去實現(xiàn)。
本次分享到此結(jié)束,謝謝!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129562.html
摘要:今天小數(shù)給大家?guī)淼氖菙?shù)人云工程師金燁的分享,有關(guān)于自動快速部署服務(wù)相關(guān)組件的一些實踐。當與相遇,雙劍合璧,一切變得如此簡單有趣。通過將服務(wù)注冊到來做健康檢查。 今天小數(shù)給大家?guī)淼氖菙?shù)人云工程師金燁的分享,有關(guān)于自動快速部署DCOS服務(wù)相關(guān)組件的一些實踐。當Ansible與Docker相遇,雙劍合璧,一切變得如此簡單有趣。 本次分享將包括以下內(nèi)容: 云平臺部署使用的服務(wù)、組件 Do...
摘要:行業(yè)內(nèi)各巨頭的自動化運維架構(gòu)都各種功能各種酷炫,如下圖,讓人可望不可及。面對這么多問題,我就想啊,如何在低成本情況下實現(xiàn)自動化運維。自動擴縮容通過配置告警規(guī)則,調(diào)用相應(yīng)就可以實現(xiàn)實戰(zhàn)以上就是筆者關(guān)于自動化運維的一些實踐。 行業(yè)內(nèi)各巨頭的自動化運維架構(gòu)都各種功能各種酷炫,如下圖,讓人可望不可及?,F(xiàn)在最終的樣子大家都知道了,但問題是如何根據(jù)自己團隊當前的情況一步步向那個目標演進?筆者所在團隊,三...
摘要:雖然可以使用相同的方式部署應(yīng)用到云端,使用外部負載均衡器,但動態(tài)添加或者減少負載均衡節(jié)點依舊是痛點。這對使用外部負載均衡器幫助巨大。 數(shù)人云今天帶來的本篇文章將分享Docker在應(yīng)用程序生命周期每個階段中所扮演的角色,以及遷移到Swarm集群時需要考慮的問題。 利用Docker來開發(fā) Docker讓工作更輕松。如需要一個部署安裝MySQL數(shù)據(jù)庫,或者安裝Ghost,又或者Redis數(shù)據(jù)...
摘要:從到到的部署經(jīng)驗工作中,除了開發(fā)功能,還負責(zé)系統(tǒng)的部署工作。我從頻繁的部署工作中,逐漸找到了一些偷懶的方法。同時在構(gòu)建成功后執(zhí)行我們輸入的命令,來達到自動化部署的工作。缺點也是有的,很難保證對方部署的環(huán)境是最新的。 從Docker 到Jenkins 到Ansible的部署經(jīng)驗 工作中,除了開發(fā)功能,還負責(zé)系統(tǒng)的部署工作。我從頻繁的部署工作中,逐漸找到了一些偷懶的方法。從傳統(tǒng)的Java ...
摘要:自動化部署最近因為工作需要學(xué)習(xí)了把這幾天所學(xué)的東西做了個總結(jié),和大家分享一下什么是能干什么是新出現(xiàn)的自動化運維工具,基于開發(fā),集合了眾多運維工具的優(yōu)點,實現(xiàn)了批量系統(tǒng)配置批量程序部署批量運行命令等功能。 ansible自動化部署 最近因為工作需要學(xué)習(xí)了ansible,把這幾天所學(xué)的東西做了個總結(jié),和大家分享一下: 1、什么是ansible?ansible能干什么? ansible是新出...
閱讀 1357·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3672·2023-01-11 13:20