佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Linux下的自動(dòng)化運(yùn)維工具ansible初探

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

熱門標(biāo)簽:美團(tuán) 家政服務(wù)網(wǎng)絡(luò) 服務(wù)器配置 解決方案 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 電話機(jī)器人搭建 硅谷的囚徒呼叫中心 外呼系統(tǒng)

一、什么樣的情形需要批量部署

1、操作系統(tǒng)的安裝

常見的有collber,red hat satelite(redhat)系統(tǒng)專用。

2、操作系統(tǒng)的配置

常見的有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)維工具常見的工作模式 
1、agent模式: 基于ssl實(shí)現(xiàn)。代理工作在被監(jiān)控端。像puppet。 
2、agentless模式: 基于ssh服務(wù)實(shí)現(xiàn)工作在被監(jiān)控端。監(jiān)控端是ssh的客戶端。
ansible是工作在agentless模式下具有冪等性。ansible在控制端只需要告訴監(jiān)控端的期望狀態(tài)就可以實(shí)現(xiàn)批量部署。

名詞解釋 
冪等性不會(huì)重復(fù)執(zhí)行相同的指令。例如不會(huì)重復(fù)安裝軟件 
期望狀態(tài)只需要告訴被監(jiān)控端的期望狀態(tài)
ansible是基于模塊工作的ansible本身沒有批量部署的能力。真正具有批量部署的是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列表以方便集群操作

復(fù)制代碼
代碼如下:

$ 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

復(fù)制代碼
代碼如下:

$ ansible local -m ping
192.168.213.135 | success >> {
"changed": false,
"ping": "pong"
}

 
ansible常見用法為ansible host-pattern -m 模塊 -a 命令,host-pattern類似于簡(jiǎn)化的正則表達(dá)式,而模塊可以通過ansible-doc -l命令來(lái)查詢。下面是一些常用模塊的使用方法:
安裝軟件:
復(fù)制代碼
代碼如下:
ansible local -m apt -a ‘name=gcc state=present’
或者
復(fù)制代碼
代碼如下:
ansible local -m yum -a “name=nmap state=installed”

執(zhí)行命令:
復(fù)制代碼
代碼如下:
ansible local -m shell -a ‘uptime’

拷貝文件:
復(fù)制代碼
代碼如下:
ansible local -m copy -a “src=/tmp/server dest=/tmp/server”

文件屬性:
復(fù)制代碼
代碼如下:
ansible local -m file -a “dest=/tmp/server mode=755 owner=root group=root”

*
 
playbook
 
playbook是由一個(gè)或多個(gè)“play”組成的列表。play的主要功能在于將事先歸并為一組的主機(jī)裝扮成事先通過ansible中的task定義好的角色。
 
一個(gè)簡(jiǎn)單的playbook配置如下:

復(fù)制代碼
代碼如下:

- 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)如下:

復(fù)制代碼
代碼如下:

# playbook.yml
---
- hosts: local # hosts中指定
remote_user: root # 如果和當(dāng)前用戶一樣,則無(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' # 假裝刪除

標(biāo)簽:北海 烏蘭察布 邢臺(tái) 防城港 南昌 韶關(guān) 臨沂 撫州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux下的自動(dòng)化運(yùn)維工具ansible初探》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    界首市| 阳新县| 浦江县| 屏南县| 林口县| 晋城| 石门县| 奉节县| 万安县| 红原县| 布尔津县| 广州市| 凤阳县| 新田县| 曲周县| 宁阳县| 本溪市| 阳谷县| 改则县| 隆昌县| 蓬安县| 德江县| 龙江县| 手游| 铜山县| 安丘市| 高碑店市| 巴彦淖尔市| 新安县| 石景山区| 五常市| 平谷区| 镇康县| 泸定县| 兴安盟| 来凤县| 侯马市| 樟树市| 河源市| 合山市| 天等县|