16.1、python版本說明:
Ansible是一種批量部署工具,現在運維人員用的最多的三種開源集中化管理工具有:puppet,saltstack,ansible,各有各的優缺點,
其中saltstack和ansible都是用python開發的。ansible其實准確的說只提供了一個框架,它要基於很多其他的python模塊才能工
作的,所以在安裝ansible的時候你要再裝很多其他的依賴包的。ansible的好處之一是使用者可以開發自己的模塊,放在里面使用;
第二個好處是無需在客戶端安裝agent,更新時,只需在操作機上進行一次更新即可;第三個好處是批量任務執行可以寫成腳本,
而且不用分發到遠程就可以執行。強烈建議升級python版本到2.6以上,不然運行會出錯或者有些功能會沒有,在編譯安裝其他包的
時候也會因為兼容問題報錯。
16.2、centos7下python版本是2.7.5,符合ansible的安裝需求,直接進行編譯安裝即可。centos6下的python版本為Python 2.6.6,
需要升級python版本到2.7,升級步驟如下:
1、提前安裝依賴包:
yum install zlib zlib-devel openssl openssl-devel gcc -y
2、編譯安裝:
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
tar zxf Python-2.7.12.tgz
cd Python-2.7.12
./configure --prefix=/usr/local/python2.7.12
make
make install
3、修改環境變量:
echo "export PATH=$PATH:/usr/local/python2.7.12/bin" >>/etc/profile
source /etc/profile
4、修改python默認版本:
mv /usr/bin/python /usr/bin/python.old
ln -s /usr/local/python2.7.12/bin/python2.7 /usr/bin/python
5、為防止yum執行異常,修改yum使用的python版本:
vim /usr/bin/yum
#將文件頭#!/usr/bin/python修改為#!/usr/bin/python2.6
16.3、編譯安裝ansible:
1、安裝setuptools:
wget https://files.pythonhosted.org/packages/37/1b/b25507861991beeade31473868463dad0e58b1978c209de27384ae541b0b/setuptools-40.6.3.zip
unzip setuptools-40.6.3.zip 1>/dev/null
cd setuptools-40.6.3
python setup.py install
2、安裝pip:
(1)方法一:
easy_install-2.7 pip
(2)方法二(推薦):
wget https://files.pythonhosted.org/packages/45/ae/8a0ad77defb7cc903f09e551d88b443304a9bd6e6f124e75c0fbbf6de8f7/pip-18.1.tar.gz
tar xzf pip-18.1.tar.gz
cd pip-18.1
python setup.py install
3、通過pip安裝常用模塊:
pip2.7 install paramiko PyYAML Jinja2 httplib2 six pycrypto markupsafe ecdsa simplejson
模塊功能介紹:
paramiko:用python語言寫的一個模塊,遵循SSH2協議,支持以加密和認證的方式,進行遠程服務器的連接。
PyYAML:一個Python的YAML解析器。
Jinja2:基於python的模板引擎。
httplib2:一個使用python寫的支持的非常全面的http特性的庫。
six:提供了一些簡單的工具用來封裝 Python 2 和 Python 3 之間的差異性。
pycrypto:是一個免費的加密算法庫,支持常見的DES、AES加密以及MD5、SHA各種HASH運算。
markupsafe:為Python實現 XML/HTML/XHTML 標記安全字符串。
ecdsa:橢圓曲線數字簽名算法( ECDSA)是非對稱加密技術的一種。
simplejson:方便完成json的生成和解析。
4、安裝ansible:
wget https://releases.ansible.com/ansible/ansible-2.9.5.tar.gz
tar xzf ansible-2.9.5.tar.gz
cd ansible-2.9.5
python setup.py install
5、查看ansible的版本:
ansible --version
6、創建Ansible配置文件,並開啟Ansible日志(Ansible默認不啟用日志):
mkdir /etc/ansible
cp -a /tools/ansible-2.9.5/examples/ansible.cfg /etc/ansible/
sed -i.bak 's/#log_path/log_path/' /etc/ansible/ansible.cfg