本人由于接手了某公有云devops項目的ops一端的求助,關于自動化部署的。最終經過N久的選項,篩選。最終進入我眼簾的就是Ansible。什么是Ansible?
曾比較火的部署工具
pupet, cloudify, saltstack.....
他們的特色,出來了很久了,需要在目標機裝agent。但是對于運維人員來講,特別是某openstack的某些項目,幾百臺,幾千臺的機器。單單是部署agent,那是要了他們的命。
然后這個Ansible就橫空出世了:
他的前輩能做的,它也能做。他的前輩需要agent,它不需要。就這一點,就被本次選型選中了。
運維人員怎么會喜歡需要安裝agent的部署工具?絕不。
Ansible的運作方式
Ansible的運作方式,很多網頁都說的很明白了,這里就引用一個:

" ansible是新出現的自動化運維工具,基于Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。ansible是基于模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只是提供一種框架。主要包括:
(1)、連接插件connection plugins:負責和被監控端實現通信;
(2)、host inventory:指定操作的主機,是一個配置文件里面定義監控的主機;
(3)、各種模塊核心模塊、command模塊、自定義模塊;
(4)、借助于插件完成記錄日志郵件等功能;
(5)、playbook:劇本執行多個任務時,非必需可以讓節點一次性運行多個任務。"
學習ansible需要的技能背景
- 知道linux,比如ubuntu,centos等,能熟練使用它們,因為ansible對linux的支持是天生的。windows?對于高端維護人員來說,windows能干啥??
- shell,必須過關的技能,至少你能自己寫個復雜的部署某某項目的腳本。
- python, 會用,會寫,最重要的會讀。沒準你需要寫ansible的自定義module也說不定
- yaml, 這個你要明白它的語法,干啥用的
- jinja2,這個也需要你明白它的語法。
我們開始吧!
下面我們就準備開始ansible的使用辦法介紹了。