1. 程式人生 > >ansible介紹

ansible介紹

fabri 域名 默認 oot pla 4.3 sta tell 金融

1.ansible前言
1.1運維工具分類(一)
1.1.1OS Provisioning(用來提供操作系統)
PXE:整合集中服務提供了系統的預執行環境,dhcp(udp 67,68),tftp(udp 69),http或者ftp服務
Cobbler:把單個使用的pxe環境做了進一步的抽象,除了可以提供dhcp和解析服務除了dhcp和bind的話,還有一種軟件叫dnsmasq,這個軟件既可以提供dhcp服務也可以提供域名解析服務。
RedHat Satellite:需購買紅帽服務,一般金融類的公司使用的多。
1.1.2OS Config(用來統一配置)
Puppet:在執行任務方面能力相當薄弱
Saltstack
func
1.1.3Task Excute(任務執行)
fabric
Func,也具有這個功能,可以歸類到兩類工具匯總
Saltatck,這個也可以完成統一配置,也可以任務執行
Deployment(部署應用)
Fabric
Ansible,尚未實現的功能就是os provisioning,據說也在研發中,本身也是輕量級的。不像puppet,chef,func,指揮其它主機配置,稱為管理主機,必須有專門的安全通道。基本都是基於ssl
1.2運維工具分類(二)
1.2.1 Agent
puppet,func,salatstac
1.2.2 Agentless
(1)依賴於每個被管理主機需要運行ssh服務
(2)需要賬號和密碼,尤其是root賬號
ansible,fabric,依賴於ssh
2.ansible簡介
(1)2012年問世
(2)源代碼托管在github上,有很多追隨者
(3)2012 top 10優秀開源項目
(4)使用python語言編寫
3.ansible特性
(1)不需要專門部署agent,也不需要部署專門的服務器
(2)融合了眾多功能,實現多層聯動,可以說是將多種工具集於一身
①configuration:cfengine(網絡配置),chef(大廚),puppet(木偶,傀儡)
②deployment:capistrano(人名,卡皮斯特拉諾),fabric(組織,構造)
③ad-hoc tasks:func(函數)
④multi-tier (多層)orchestration(管弦樂隊):juju,(護符,小玩物)sort of
(3)輕量級
(4)前後沒有次序,自己定義動作,依賴關系。只要任何一個任務出錯,可以馬上停止,來進行修改
(5)因為是基於ssh,所以不會用到ssl,也就不依賴於證書
(6)功能都是模塊化的,實現任何功能都是調用模塊。而且模塊可以使用任何編程語言來編寫,包括shell腳本
(7)yaml,使用標簽來定義格式,也可以根據角色來進行構建
4.ansible組件
4.1 Host Inventery
(1)文本文件
(2)包含主機的ip地址,掩碼,ssh服務監聽的地址,端口號,賬號密碼等,有了這些讓遠程管理成為可能。
4.2 Core Modules
(1)完成大部分的日常管理任務,但並不是所有任務
(2)例如希望主機1來新建一個賬戶,ansible並不能指揮host1來做這件事,而是要調用這個模塊。
4.3 Custom Modules
自定義模塊,可以使用任何編程語言來編寫。
4.4 Connection Plugins
(1)與其它主機進行通信,調用的是python裏邊的Paramiko模塊
(2)默認使用ssh協議,基於ssh協議的客戶端。
4.5 plugs
(1)Login:進入到日誌中
(2)Email:通知相關管理員
(3)Other:自行開發
4.6 Playbooks
(1)使用的是PyYAML和 jinja2這兩個模塊。將多個任務寫入yaml文件中,可以多次調用
(2)在同一主機上操作多次,結果也是相同的。

ansible介紹