如果是python2.版本,setuptools的版本必须低于45,如果python3.版本,则可以安装,否则编译Ansible的时候会提示警告!(建议使用Python3+版本)
控制服务器:需要安装 Python2.6/2.7
被控服务器:需要安装 Python2.4 以上版本,若低于 Python2.5 需要安装 pythonsimplejson; 若启用了 selinux,则需要安装 libselinux-python。
Linux系统版本以及Python版本
[root@vm-CentOS75-1-63 ansible-2.9.7]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@vm-CentOS75-1-63 ansible-2.9.7]# python --version
Python 2.7.5
升级python:
第一、检查当前Python版本
python -V
检查之后,我们可以看到是Python 2.6.6版本,这里就不截图了,琐碎的东西太多,就直接把过程记录下来。
第二、升级系统和安装开发工具包
yum -y update
yum groupinstall "Development tools" -y
第三、补充安装需要的组件支持
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc -y
第四、安装Python2.7.12
cd /ansible
tar xf Python-2.7.12.tgz
cd Python-2.7.12
./configure --prefix=/usr/local
sudo make && sudo make altinstall
注意了,这里是用的altinstall。
第五、检查是否安装
/usr/local/bin/python2.7 --version
目前,我们只能通过这个命令检查,看到Python 2.7.12版本。
第六、创建软链接
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
移除原来的老版本,然后创建2.7的软链接。这样我们直接用python -V可以看到已经是Python 2.7.12。
第七、修复兼容问题
这里我们直接执行yum是无法安装软件的,需要修改yum兼容。
vi /usr/bin/yum
编辑文件,在顶部修改成
#!/usr/bin/python2.6.6
第八:查看python版本
python -V
安装ansible:
# 安装python-devel和openssl-devel(前提需要配置本地yum源,可参考https://www.cnblogs.com/fusheng11711/p/10863845.html)
1. # yum -y install python-devel openssl-devel
2. cd /ansible
2.# 安装 setuptools
unzip setuptools-44.1.1.zip
cd setuptools-44.1.1
python setup.py install
# 安装pycrypto
tar -xzf pycrypto-2.6.1.tar.gz
cd pycrypto-2.6.1
python setup.py install
# 安装 PyYAML
tar -xzf PyYAML-5.3.1.tar.gz
cd PyYAML-5.3.1
python setup.py install
# 安装MarkupSafe
tar -xzf MarkupSafe-1.1.1.tar.gz
cd MarkupSafe-1.1.1
python setup.py install
# 安装Jinja2
tar -xzf Jinja2-2.10.1.tar.gz
cd Jinja2-2.10.1
python setup.py install
# 安装ecdsa
tar -xzf ecdsa-0.15.tar.gz
cd ecdsa-0.15
python setup.py install
# 安装simplejson
tar -xzf simplejson-3.17.0.tar.gz
cd simplejson-3.17.0
python setup.py install
# 安装libffi-devel
rpm -ivh libffi-devel-3.0.5-3.2.el6.x86_64.rpm
# 安装pycparser
tar -xzf pycparser-2.20.tar.gz
cd pycparser-2.20
python setup.py install
# 安装cffi
tar -xzf cffi-1.14.0.tar.gz
cd cffi-1.14.0
python setup.py install
# 安装ipaddress
tar -xzf ipaddress-1.0.23.tar.gz
cd ipaddress-1.0.23
python setup.py install
# 安装six
tar -xzf six-1.14.0.tar.gz
cd six-1.14.0
python setup.py install
# 安装asn1crypto
tar -xzf asn1crypto-1.3.0.tar.gz
cd asn1crypto-1.3.0
python setup.py install
# 安装idna
tar -xzf idna-2.9.tar.gz
cd idna-2.9
python setup.py install
# 安装pyasn1
tar -xzf pyasn1-0.4.8.tar.gz
cd pyasn1-0.4.8
python setup.py install
# 安装PyNaCl
tar -xzf PyNaCl-1.3.0.tar.gz
cd PyNaCl-1.3.0
python setup.py install
# 安装cryptography
tar -xzf cryptography-2.9.1.tar.gz
cd cryptography-2.9.1
python setup.py install
# 安装bcrypt
tar -xzf bcrypt-3.1.7.tar.gz
cd bcrypt-3.1.7
python setup.py install
# 安装enum34
tar -xzf enum34-1.1.9.tar.gz
cd enum34-1.1.9
python setup.py install
# 安装paramiko
tar -xzf paramiko-2.7.1.tar.gz
cd paramiko-2.7.1
python setup.py install
# 安装ansible
tar -zxvf ansible-2.3.3.0.tar.gz
cd ansible-2.3.3.0
python setup.py install
到这里安装结束,产看Ansible版本
ansible --version
3.# 修改Ansible配置文件位置
cd /etc
mkdir ansible
cp -a /ansible/ansible-2.3.3.0/examples/ansible.cfg /etc/ansible/
cp -a /ansible/ansible-2.3.3.0/examples/hosts /etc/ansible/
# 修改ansible.cfg文件开启日志
sed -i.bak 's/#log_path/log_path/' /etc/ansible/ansible.cfg
# 启动ansible
1.如果报找不到yaml.h的错,如图:
加上参数 --without-libyaml:
python setup.py --without-libyaml install
2.缺少sshpass
tar xvzf sshpass-1.10.tar.gz
cd sshpass-1.10.tar.gz
./configure
make
make install
问题1:在使用copy模块的时候,部分主机出现以下报错:
"msg": "Aborting, target uses selinux but python bindings (libselinux-python) aren't installed!"
解决方法:在被管理的主机上安装libselinux
yum -y install libselinux-python
问题2:在执行ansible host -m ping的时候遇到如下报错
192.168.56.6 | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true }
解决方法:修改配置文件/etc/ansible/ansible.cfg
[root@linux-node-ansible ansible]# vim /etc/ansible/ansible.cfg host_key_checking = False #将True改为False
然后清空/root/.ssh/known_hosts配置文件,重新执行命令即可
问题3:ansible “failed to resolve remote temporary directory from ansible-tmp”
问题最终解决办法安装高版本的openssh
yum update openssh -y
所有安装包附件:链接:https://pan.baidu.com/s/1e018x9DTOGk2iXEuIfoC9A
提取码:H8DJ