centos7下python版本是2.7.5(python --version),符合ansible的安裝需求,直接進行編譯安裝即可。centos6下的python版本為Python 2.6.6,
需要升級python版本到2.7,升級步驟如下:
一、提前安裝依賴包:
yum install zlib zlib-devel openssl openssl-devel gcc -y
二、編譯安裝:
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
三、編譯安裝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:
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
(注意:安裝常用模塊報錯時,error: command ‘gcc‘ failed with exit status 1,直接yum -y install python-devel,然后再安裝pycrypto即可)
模塊功能介紹:
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的生成和解析。
四、安裝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
五、查看ansible本版
ansible --version
六、創建Ansible配置文件
mkdir /etc/ansible
cp -a /home/apps/ansible/ansible-2.9.5/examples/ansible.cfg /etc/ansible/
