1. 程式人生 > >源碼安裝Ansible

源碼安裝Ansible

ansible 自動化運維

一、Ansible介紹

ansible是一款的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。ansible是基於模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只是提供一種框架。主要包括:

1、連接插件connection plugins:負責和被監控端實現通信;
2、host inventory:指定操作的主機,是一個配置文件裏面定義監控的主機;
3、各種模塊核心模塊、command模塊、自定義模塊;
4、借助於插件完成記錄日誌郵件等功能;

5、playbook:劇本執行多個任務時,非必需可以讓節點一次性運行多個任務。

二、Ansible特性
1、no agents:不需要在被管控主機上安裝任何客戶端;
2、no server:無服務器端,使用時直接運行命令即可;
3、modules in any languages:基於模塊工作,可使用任意語言開發模塊;
4、yaml,not code:使用yaml語言定制劇本playbook;
5、ssh by default:基於SSH工作;
6、strong multi-tier solution:可實現多級指揮。

三、Ansible優點

1、輕量級,無需在客戶端安裝agent,更新時,只需在操作機上進行一次更新即可;

2、批量任務執行可以寫成腳本,而且不用分發到遠程就可以執行;
3、使用python編寫,維護更簡單,ruby語法過於復雜;
4、支持sudo。

四、Ansible工作機制

下圖來源於網絡:

五、源碼安裝Ansible
源碼安裝需要python2.6以上版本,其依賴模塊paramiko、PyYAML、Jinja2、httplib2、simplejson、pycrypto等模塊,以上模塊可以通過pip或easy_install 進行安裝。

包的版本如下:
復制代碼

Python-2.7.8.tgz
Jinja2-2.7.3.tar.gz
MarkupSafe-0.9.3.tar.gz
PyYAML-3.11.tar.gz

ansible-1.7.2.tar.gz
ecdsa-0.11.tar.gz
paramiko-1.15.1.tar.gz
pycrypto-2.6.1.tar.gz
setuptools-7.0.tar.gz
simplejson-3.6.5.tar.gz
yaml-0.1.5.tar.gz

復制代碼

1、安裝python2.7
復制代碼

tar xvzf Python-2.7.8.tgz

cd Python-2.7.8

./configure --prefix=/usr/local

make --jobs=grep processor /proc/cpuinfo | wc -l

make install

將python頭文件拷貝到標準目錄,以避免編譯ansible時,找不到所需的頭文件

cd /usr/local/include/python2.7

cp -a ./* /usr/local/include/

備份舊版本的python,並符號鏈接新版本的python

cd /usr/bin

mv python python2.6

ln -s /usr/local/bin/python python

復制代碼

2、安裝setuptools模塊

tar xvzf setuptools-7.0.tar.gz

cd setuptools-7.0

python setup.py install

3、安裝pycrypto模塊

tar xvzf pycrypto-2.6.1.tar.gz

cd pycrypto-2.6.1

python setup.py install

4、安裝PyYAML模塊
復制代碼

tar xvzf yaml-0.1.5.tar.gz

cd yaml-0.1.5

./configure --prefix=/usr/local

make --jobs=grep processor /proc/cpuinfo | wc -l

make install

tar xvzf PyYAML-3.11.tar.gz

cd PyYAML-3.11

python setup.py install

復制代碼

5、安裝Jinja2模塊
復制代碼

tar xvzf MarkupSafe-0.9.3.tar.gz

cd MarkupSafe-0.9.3

python setup.py install

tar xvzf Jinja2-2.7.3.tar.gz

cd Jinja2-2.7.3

python setup.py install

復制代碼

6、安裝paramiko模塊
復制代碼

tar xvzf ecdsa-0.11.tar.gz

cd ecdsa-0.11

python setup.py install

tar xvzf paramiko-1.15.1.tar.gz

cd paramiko-1.15.1

python setup.py install

復制代碼

7、安裝simplejson模塊

tar xvzf simplejson-3.6.5.tar.gz

cd simplejson-3.6.5

python setup.py install

8、安裝ansible

tar xvzf ansible-1.7.2.tar.gz

cd ansible-1.7.2

python setup.py install

源碼安裝Ansible