Ansible 小手冊(cè)系列 一(介紹)

介紹


Ansible 是一個(gè)配置管理和應(yīng)用部署工具,功能類(lèi)似于目前業(yè)界的配置管理工具 Chef,Puppet,Saltstack。Ansible 是通過(guò) Python 語(yǔ)言開(kāi)發(fā)。Ansible 平臺(tái)由 Michael DeHaan 創(chuàng)建,他同時(shí)也是知名軟件 Cobbler 與 Func 的作者。Ansible 的第一個(gè)版本發(fā)布于 2012 年 2 月,相比較其它同類(lèi)產(chǎn)品來(lái)說(shuō),Ansible 還是非常年輕的,但這并不影響他的蓬勃發(fā)展與大家對(duì)他的熱愛(ài)。

Ansible 默認(rèn)通過(guò) SSH 協(xié)議管理機(jī)器,所以 Ansible 不需要安裝客戶(hù)端程序在服務(wù)器上。您只需要將 Ansible 安裝在一臺(tái)服務(wù)器,在 Ansible 安裝完后,您就可以去管理控制其它服務(wù)器。不需要為它配置數(shù)據(jù)庫(kù),Ansible 不會(huì)以 daemons 方式來(lái)啟動(dòng)或保持運(yùn)行狀態(tài)。

Ansible 的目標(biāo)有如下:
? 自動(dòng)化部署應(yīng)用
? 自動(dòng)化管理配置
? 自動(dòng)化的持續(xù)交付
? 自動(dòng)化的(AWS)云服務(wù)管理。

根據(jù) Ansible 官方提供的信息,當(dāng)前使用 Ansible 的用戶(hù)有:evernote、rackspace、NASA、Atlassian、twitter 等。

Ansible是怎么工作的


Paste_Image.png

從上圖可以看出,運(yùn)行ansible的先決條件是,安裝ansible到管理節(jié)點(diǎn),定義主機(jī)清單,并有一些playbooks定義。

讓我們來(lái)看看我們?nèi)绾问褂肁nsible將我們的Ubuntu虛擬機(jī)轉(zhuǎn)換為Web服務(wù)器。

您在管理節(jié)點(diǎn)上運(yùn)行Ansible Playbook,它查看您在playbook中定義的命令參數(shù),并通知我們定位到網(wǎng)絡(luò)組中的節(jié)點(diǎn)。 Ansible然后讀取主機(jī)清單以查找分配給Web組的節(jié)點(diǎn)。在這一點(diǎn)上,Ansible已經(jīng)準(zhǔn)備好開(kāi)始工作,所以它將通過(guò)ssh遠(yuǎn)程連接到定義的機(jī)器,通常你會(huì)想要通過(guò)預(yù)共享密鑰建立一些類(lèi)型的ssh信任,這樣你就不必在進(jìn)行ssh登陸的時(shí)候輸入密碼。然后Ansible將開(kāi)始逐步執(zhí)行playbook中的任務(wù),一次一個(gè)任務(wù),從頂部到底部的順序遍歷它們,就像你手動(dòng)登錄執(zhí)行任務(wù)一樣。所以,它安裝軟件包,更新配置文件,使用git部署我們的網(wǎng)站代碼,最后啟動(dòng)我們的Web服務(wù)。當(dāng)Ansible很愉快的把一切都按預(yù)期的完成,你會(huì)得到一個(gè)執(zhí)行成功的狀態(tài)報(bào)告。

可以用動(dòng)圖說(shuō)明下此次過(guò)程。

46-ansible-playbook-haproxy-nginx1.gif

對(duì)管理主機(jī)的要求


目前,只要機(jī)器上安裝了 Python 2.6 或 Python 2.7 (windows系統(tǒng)不可以做控制主機(jī)),都可以運(yùn)行Ansible.
主機(jī)的系統(tǒng)可以是 Red Hat, Debian, CentOS, OS X, BSD的各種版本,等等.

對(duì)節(jié)點(diǎn)主機(jī)的要求


通常我們使用 ssh 與托管節(jié)點(diǎn)通信,默認(rèn)使用 sftp.如果 sftp 不可用,可在 ansible.cfg 配置文件中配置成 scp 的方式. 在托管節(jié)點(diǎn)上也需要安裝 Python 2.4 或以上的版本.如果版本低于 Python 2.5 ,還需要額外安裝一個(gè)模塊:

python-simplejson

Ansible 與其它配置管理的對(duì)比


選擇了目前幾款主流的與 Ansible 功能類(lèi)似的配置管理軟件 Puppet、Saltstack,這里所做的對(duì)比不針對(duì)各個(gè)軟件的性能作比較,只是對(duì)各個(gè)軟件的特性做個(gè)對(duì)比。

Puppet Saltstack Ansible
開(kāi)發(fā)語(yǔ)言 Ruby Python Python
是否有客戶(hù)端 無(wú)
是否支持二次開(kāi)發(fā) 不支持 支持 支持
服務(wù)器與遠(yuǎn)程機(jī)器是否相互驗(yàn)證
服務(wù)器與遠(yuǎn)程機(jī)器通信是否加密 是,標(biāo)準(zhǔn) SSL 協(xié)議 是,使用 AES 加密 是,使用 OpenSSH
平臺(tái)支持 支持 AIX、BSD、HP-UX、Linux、 MacOSX、Solaris、 Windows 支持 BSD、Linux、Mac OS X、Solaris、 Windows 支持 AIX、BSD、 HP-UX、 Linux、Mac OSX、Solaris
是否提供 web ui 提供 提供 提供,不過(guò)是商業(yè)版本
配置文件格式 Ruby 語(yǔ)法格式 YAML YAML
命令行執(zhí)行 不支持,但可通過(guò)配置模塊實(shí)現(xiàn) 支持 支持

資源


官方文檔: http://docs.ansible.com/
中文文檔: http://www.ansible.com.cn/ http://ansible-tran.readthedocs.io/
Jinja2 中文文檔: http://docs.jinkan.org/docs/jinja2/
yaml語(yǔ)法: http://www.yaml.org/
書(shū)籍: https://www.ansible.com/ebooks 鏈接:http://pan.baidu.com/s/1qYazeos 密碼:28p2
ansible examples :https://github.com/ansible/ansible-examples
ansible-vim: https://github.com/pearofducks/ansible-vim (可以高亮顯示,語(yǔ)法檢查)


更多文章請(qǐng)看 Ansible 專(zhuān)題文章總覽

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ansible 系統(tǒng)架構(gòu) ansible簡(jiǎn)介ansible是新出現(xiàn)的自動(dòng)化運(yùn)維工具,ansible是一個(gè)配置管理和...
    運(yùn)維阿文閱讀 9,841評(píng)論 1 53
  • ansible-playbook playbook簡(jiǎn)介 playbook是ansible用于配置,部署,和管理被控...
    bdslinux閱讀 11,156評(píng)論 1 12
  • 一.ansible (1) ansible: ansible是一款新出現(xiàn)的自動(dòng)化運(yùn)維系統(tǒng),基于python開(kāi)發(fā)并集...
    楠人幫閱讀 2,126評(píng)論 0 8
  • 世界上只有一種真正的英雄主義,那就是在認(rèn)清生活真相以后依舊熱愛(ài)生活
    咸魚(yú)閱讀 232評(píng)論 0 0
  • 你喜歡的是細(xì)水長(zhǎng)流煮紅豆 我想要的是聲色犬馬走天涯
    沫小草閱讀 212評(píng)論 0 0

友情鏈接更多精彩內(nèi)容