1.ansible的相關(guān)介紹、功能用途和特點(diǎn)
1.ansible的相關(guān)概念和使用場(chǎng)景
ansible是一個(gè)自動(dòng)化的配置管理工具,ansible集成了豐富的模塊,以及強(qiáng)大的功能組件,可以通過一個(gè)命令行批量完成一系列的操作。進(jìn)而能減少我們重復(fù)性的工作,以提高工作的效率。
簡(jiǎn)單的可以理解為:ansible就是一個(gè)批量操作工具
使用場(chǎng)景:
比如: 批量部署服務(wù),我們想有20臺(tái)服務(wù)器,都需要安裝nginx服務(wù),用手動(dòng)?如果100臺(tái)呢,這種情況就體現(xiàn)到了ansible的作用
又如: 批量更新配置文件,我們有30臺(tái)機(jī)器,配置文件需要統(tǒng)一進(jìn)行修改,也會(huì)用到ansible
又如: 批量發(fā)版上線或重啟服務(wù),等等,只要需要批量操作時(shí)候都可以使用ansible
2.ansible的主要功能
1).批量執(zhí)行遠(yuǎn)程命令,可以對(duì)N多臺(tái)主機(jī)同時(shí)進(jìn)行命令的執(zhí)行。
2).批量配置軟件服務(wù),可以進(jìn)行自動(dòng)化的方式配置和管理服務(wù)。
3).實(shí)現(xiàn)軟件開發(fā)功能,jumpserver堡壘機(jī)底層就是使用ansible來實(shí)現(xiàn)的自動(dòng)化批量管理。
4).編排高級(jí)的IT任務(wù),ansible 的 playbook是一門編程語(yǔ)言,可以用來描繪一套IT劇本架構(gòu),完成復(fù)雜的任務(wù)。類似shell腳本
5).通過roles角色定義,可以自定義部署某一個(gè)角色任務(wù)或某一些角色任務(wù)
3.ansible的特點(diǎn)
1).學(xué)習(xí)成本低,學(xué)習(xí)容易
ansible不需要啟動(dòng)任何服務(wù),僅需要安裝對(duì)應(yīng)的ansible工具即可,也不需要單獨(dú)安裝客戶端,ssh相當(dāng)于ansible的客戶端
不像salt既要學(xué)客戶端與服務(wù)端,還需要學(xué)習(xí)客戶端與服務(wù)端中間通訊協(xié)議
2).操作靈活
ansible有較多的模塊,提供了豐富的功能,可根據(jù)需要靈活使用各個(gè)模塊功能,playbook則提供類似于編程語(yǔ)言的復(fù)雜功能
3).簡(jiǎn)單易用
體現(xiàn)在ansible一個(gè)命令可以完成很多事情
4).安全可靠
因?yàn)閍nsible使用了ssh協(xié)議進(jìn)行通訊,既穩(wěn)定也安全;移植性高:可以將寫好的playbook拷貝至任意機(jī)進(jìn)行執(zhí)行, tcp+ssh的方式傳輸
5).冪等性
一個(gè)任務(wù)執(zhí)行1遍和執(zhí)行n遍效果一樣,不會(huì)因?yàn)橹貜?fù)執(zhí)行帶來意外情況
6).需要python環(huán)境
ansible依賴大量的python模塊來實(shí)現(xiàn)批量管理,需要有python環(huán)境:python2.6/2.7/3.x
4.ansible的配置文件
[root@localhost ~]# rpm -qc ansible
/etc/ansible/ansible.cfg ? ?# 主配置文件
/etc/ansible/hosts # 主機(jī)清單文件