Linux下的自動(dòng)化運(yùn)維工具ansible初探

一、什么樣的情形需要批量部署
1、操作系統(tǒng)的安裝
常見(jiàn)的有collber,red hat satelite(redhat)系統(tǒng)專(zhuān)用。
2、操作系統(tǒng)的配置
常見(jiàn)的有cfengine,puppet,chef,func。其中puppet最受歡迎
3、批量程序的部署
4、批量命令的運(yùn)行查看狀態(tài)信息
二、ansible介紹
ansible的架構(gòu)大致如下
ansible是新出現(xiàn)的運(yùn)維工具是基于Python研發(fā)的糅合了眾多老牌運(yùn)維工具的優(yōu)點(diǎn)實(shí)現(xiàn)了批量操作系統(tǒng)配置、批量程序的部署、批量運(yùn)行命令等功能。
運(yùn)維工具常見(jiàn)的工作模式
1、agent模式: 基于ssl實(shí)現(xiàn)。代理工作在被監(jiān)控端。像puppet。
2、agentless模式: 基于ssh服務(wù)實(shí)現(xiàn)工作在被監(jiān)控端。監(jiān)控端是ssh的客戶(hù)端。
ansible是工作在agentless模式下具有冪等性。ansible在控制端只需要告訴監(jiān)控端的期望狀態(tài)就可以實(shí)現(xiàn)批量部署。
名詞解釋
冪等性不會(huì)重復(fù)執(zhí)行相同的指令。例如不會(huì)重復(fù)安裝軟件
期望狀態(tài)只需要告訴被監(jiān)控端的期望狀態(tài)
ansible是基于模塊工作的ansible本身沒(méi)有批量部署的能力。真正具有批量部署的是ansible所運(yùn)行的模塊ansible只是提供一種框架。架構(gòu)包括
連接插件connection plugins負(fù)責(zé)和被監(jiān)控端實(shí)現(xiàn)通信。
Host Inventory:指定操作的主機(jī),是一個(gè)配置文件里面定義監(jiān)控的主機(jī)
各種模塊核心模塊command模塊自定義模塊
借助于插件完成記錄日志郵件等功能
PlayBooks:劇本執(zhí)行多個(gè)任務(wù)時(shí)。并非必需可以讓節(jié)點(diǎn)一次性運(yùn)行多個(gè)任務(wù)
三、基本使用方法
在管理集群時(shí),ansible需要先配置集群hosts列表以方便集群操作
$ cat /etc/ansible/hosts
[local]
# 配置密碼登陸,需要ansible本機(jī)安裝sshpass
192.168.213.135 ansible_ssh_user=root ansible_ssh_pass=root
[zabbix]
# 密鑰登陸
172.17.0.2:49154 ansible_ssh_user=root
172.17.0.4:49155 ansible_ssh_user=root
[vpn]
172.17.0.10
測(cè)試連接登陸是否OK
$ ansible local -m ping
192.168.213.135 | success >> {
"changed": false,
"ping": "pong"
}
ansible常見(jiàn)用法為ansible host-pattern -m 模塊 -a 命令,host-pattern類(lèi)似于簡(jiǎn)化的正則表達(dá)式,而模塊可以通過(guò)ansible-doc -l命令來(lái)查詢(xún)。下面是一些常用模塊的使用方法:
安裝軟件:
執(zhí)行命令:
拷貝文件:
文件屬性:
*
playbook
playbook是由一個(gè)或多個(gè)“play”組成的列表。play的主要功能在于將事先歸并為一組的主機(jī)裝扮成事先通過(guò)ansible中的task定義好的角色。
一個(gè)簡(jiǎn)單的playbook配置如下:
- hosts: local
remote_user: root
tasks:
- name: echo hi
shell: echo "hi"
ansible還支持設(shè)置handlers,handlers是在執(zhí)行tasks之后服務(wù)器發(fā)生變化之后可供調(diào)用的handler,使用起來(lái)如下:
# playbook.yml
---
- hosts: local # hosts中指定
remote_user: root # 如果和當(dāng)前用戶(hù)一樣,則無(wú)需指定
tasks:
- name: whoami
copy: src=~/hosts dest=~/hosts.dest # 本地拷貝到遠(yuǎn)端
notify: # 如果copy執(zhí)行完之后~/hosts.dest文件發(fā)送了變化,則執(zhí)行
- clear copy # 調(diào)用handler
handlers:
- name: clear copy
shell: 'mv ~/hosts.dest hosts.del' # 假裝刪除
相關(guān)文章
linux運(yùn)維實(shí)戰(zhàn)案例之Argument list too long錯(cuò)誤與解決方法
作為一名運(yùn)維人員來(lái)說(shuō),這個(gè)錯(cuò)誤并不陌生,在執(zhí)行rm、cp、mv等命令時(shí),如果要操作的文件數(shù)很多,可能會(huì)使用通配符批量處理大量文件,這時(shí)就可能會(huì)出現(xiàn)“Argument list too2017-04-02Linux主流架構(gòu)運(yùn)維工作簡(jiǎn)單剖析講解
今天小編要為大家?guī)?lái)的是Linux主流架構(gòu)運(yùn)維工作簡(jiǎn)單剖析講解;希望對(duì)大家會(huì)有幫助。有需要的朋友一起去看看吧2017-03-30- 整理一套入門(mén)的運(yùn)維常用命令,希望喜歡Linux的朋友們更快的熟悉并掌握Linux運(yùn)維,這里沒(méi)有太多理論,有的只是干貨,這里我會(huì)把網(wǎng)上看到的、自己平時(shí)用到的、和感興趣的都整2017-01-22
運(yùn)維老鳥(niǎo)談生產(chǎn)場(chǎng)景對(duì)linux系統(tǒng)進(jìn)行分區(qū)的方法
一些朋友還不知道生產(chǎn)場(chǎng)景如何對(duì)linux系統(tǒng)進(jìn)行分區(qū)?今天小編為大家?guī)?lái)的是運(yùn)維老鳥(niǎo)談生產(chǎn)場(chǎng)景對(duì)linux系統(tǒng)進(jìn)行分區(qū)的方法;有需要的朋友可以過(guò)來(lái)看看2016-12-14Linux運(yùn)維工程師入門(mén)必備的10個(gè)技術(shù)點(diǎn)
這篇文章主要介紹了Linux運(yùn)維工程師入門(mén)必備的10個(gè)技術(shù)點(diǎn),本文是運(yùn)維工程師的心得總結(jié),還有一些對(duì)學(xué)習(xí)Linux系統(tǒng)的建議,需要的朋友可以參考下2015-06-15- 這篇文章主要介紹了整理的一些Linux運(yùn)維工程師面試題,本文整理了Linux操作系統(tǒng)知識(shí)、Linux命令及文件操作、Linux磁盤(pán)及軟件管理操作、Linux服務(wù)配置及管理4大類(lèi)面試題,需要2015-05-18
linux中運(yùn)維自動(dòng)化之Cobbler 系統(tǒng)安裝使用詳解
這篇文章主要為大家介紹了linux中運(yùn)維自動(dòng)化之Cobbler系統(tǒng)安裝使用,Cobbler是一個(gè)快速網(wǎng)絡(luò)安裝linux的服務(wù),而且在經(jīng)過(guò)調(diào)整也可以支持網(wǎng)絡(luò)安裝windows。使用 Cobbler,您2014-10-09LINUX運(yùn)維實(shí)戰(zhàn)案例之文件已刪除但空間不釋放問(wèn)題的分析與解決辦法
這篇文章主要為大家介紹了由于Linux沒(méi)有回收站功能,我們的線(xiàn)上服務(wù)器所有要?jiǎng)h除的文件都會(huì)首先移動(dòng)到系統(tǒng)/tmp目錄下,然后定期清除/tmp目錄下的數(shù)據(jù),但是出現(xiàn)文件已刪除2014-09-28LINUX安全運(yùn)維之:文件系統(tǒng)的權(quán)限修改與安全設(shè)置
這篇文章主要為大家介紹了LINUX系統(tǒng)的文件系統(tǒng)的權(quán)限修改與安全設(shè)置,系統(tǒng)運(yùn)維人員有時(shí)候可能會(huì)遇到通過(guò)root用戶(hù)都不能修改或者刪除某個(gè)文件的情況,產(chǎn)生這種情況的大部分2014-09-28談?wù)凩inux運(yùn)維人員是否需要掌握一門(mén)編程語(yǔ)言
這篇文章主要介紹了談?wù)凩inux運(yùn)維人員是否需要掌握一門(mén)編程語(yǔ)言,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下,下面就來(lái)和我一起看看吧,希望大家在閱2018-01-24