特點
python開發(fā)
Ansible 是 python語言編寫的,而Devops在國內已然是一種趨勢,python逐步普及,運維人員自己開發(fā)工具的門檻降低,得益于此,方便對Ansible進行二次開發(fā)
Agentless
Ansible 主推的賣點是其無需任何Damon維護進程即可實現相互間的通信,且通信方式基于SSH,同時因為SSH是每臺linux主機系統(tǒng)必裝的軟件,所以Ansible無需在遠程主機端安裝任何額外的進程,即可實現Agentless,進而助力其實現去中心化的思想。
Ansible的組成部分

- playbooks:
任務劇本,編排Ansible任務集的配置文件,由ansible會順序執(zhí)行,通常是Json格式的YML文件。 - INVENTORY:
ansible主機管理清單 - MODULES:
Ansible執(zhí)行命令的功能模塊,多數為內置的核心模塊,也可以自定義,比如說user、yum、shell等 - PLUGINS:
模塊功能的補充,如連續(xù)類型插件、循環(huán)插件、變量插件等,不常用 - API:
供第三方程序調用的應用程序編程接口 - ANSIBLE核心:
我們可以理解為ANSIBLE的命令工具,所有命令的執(zhí)行通過該工具去調用INVENTORY、API、MODULES、PLUGINS等
ansible的執(zhí)行邏輯

使用者使用ansible或者ansible-playbooks(會額外讀取playbook文件)在服務器終端輸入的Ansible命令集或者playbook后,Ansible會遵循預先編排的規(guī)則將PLAYbook逐條拆解為Play,再將Play組織成Ansible可以識別的任務(Task),隨后調用任務涉及到的所有MODULES及PLUGINS,根據INVENTORY中定義的主機列表通過SSH協(xié)議將任務集以臨時文件或者命令的形式傳輸到遠程客戶端并返回結果,如果是臨時文件則執(zhí)行完畢后自動刪除。
需要安裝些什么
Ansible默認通過 SSH 協(xié)議管理機器.
安裝Ansible之后,不需要啟動或運行一個后臺進程,或是添加一個數據庫.只要在一臺電腦(可以是一臺筆記本)上安裝好,就可以通過這臺電腦管理一組遠程的機器.在遠程被管理的機器上,不需要安裝運行任何軟件,因此升級Ansible版本不會有太多問題.
選擇哪一個版本?
因為Ansible可以很簡單的從源碼運行,且不必在遠程被管理機器上安裝任何軟件,很多Ansible用戶會跟進使用開發(fā)版本.
Ansible一般每兩個月出一個發(fā)行版本.小bugs一般在下一個發(fā)行版本中修復,并在穩(wěn)定分支中做backports.大bugs會在必要時出一個維護版本,不過這不是很頻繁.
對管理主機的要求
目前,只要機器上安裝了 Python 2.6 或 Python 2.7 (windows系統(tǒng)不可以做控制主機),都可以運行Ansible.
安裝
Ansible被Redhat紅帽官方收購后,其安裝源被收錄在EPEL中,如已安裝EPEL可直接通過yum安裝,或者通過PIP 或者easy_install 的python第三方包管理器也可以安裝Ansible。
pip安裝方式
安裝python-pip及python-devel程序包
yum install -y python-pip python-devel -y
如果是centos7 ,請先安裝EPEL擴展源
sudo yum -y install epel-release,再執(zhí)行上面的命令
安裝Ansible服務
//安裝前請確認服務器的gcc、glibc 開發(fā)環(huán)境均已安裝,系統(tǒng)幾乎所有的軟件包編譯環(huán)境均基于gcc,如不確認,可以先執(zhí)行如下命令:
yum install -y gcc glibc-devel zlib-devel rpm-build openssl-devel
升級本地pip至最新版本
pip install --upgrade pip
安裝ansible服務
pip install ansible --upgrade
驗證:
ansible --versions
yum安裝方式
//安裝前請確認服務器的gcc、glibc 開發(fā)環(huán)境均已安裝,系統(tǒng)幾乎所有的軟件包編譯環(huán)境均基于gcc,如不確認,可以先執(zhí)行如下命令:
yum install -y gcc glibc-devel zlib-devel rpm-build openssl-devel
sudo yum -y install epel-release #安裝EPEL擴展源
yum install -y ansible
驗證:
ansible --version
EPEL : (Extra Packages for Enterprise Linux,企業(yè)版Linux的額外軟件包) 是由Fedora小組維護的一個軟件倉庫項目,為RHEL/CENTOS提供他們默認不提供的軟件包
建議讀者使用yum 安裝方式,因為后面本人會根據yum安裝方式為大家介紹ansible的配置文件