ansible源码安装
一.升级python
笔者系统为centos6.5,系统默认安装python2.6,虽然ansible官方文档要求python版本为2.6或2.7,然而许多人都说使用2.6可能出现一系列问题,所以作者决定将2.6升级为2.7以避免不必要的麻烦。
python下载地址:https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz -P /download cd /download tar xf Python-2.7.13.tgz -C tmp/ cd tmp/Python-2.7.13
./configure --prefix=/usr/local/python2.7
make && make install yum install gcc gcc-c++ openssl-devel zlib zlib-devel -y ./configure --prefix=/usr/local/ make && make install
mv /usr/bin/python /usr/bin/python2.6.6 ln -s /usr/local/python2.7/bin/python2.7 /usr/bin/python python -V #查看版本信息已经不是Python 2.6.6了 Python 2.7.13
*注:python升级后yum不能使用?
查看yum命令脚本可以发现yum使用的解释器是系统默认的python,而默认python(/usr/bin/python)已经被重命名为python2.6.6(/usr/bin/python2.6.6)了,所以我们只需要把yum脚本中的 #!/usr/bin/python 改为 #!/usr/bin/python2.6.6 即可
二.安装pip
pip 是python软件包的安装和管理工具, 有了这个工具, 我们只需要一个命令就可以轻松的python 的任意类库。有点类似于centos中的yum
下载地址:https://pypi.python.org/pypi/pip
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9 -P /download/ tar xf /download/pip-9.0.1.tar.gz -C /download/tmp cd /download/tmp/pip-9.0.1 python setup.py install
安装过程中可能报错:
[root@xiamihost2 pip-9.0.1]# python setup.py install Traceback (most recent call last): File "setup.py", line 6, in <module> from setuptools import setup, find_packages ImportError: No module named setuptools
#大概意思是说缺少setuptools这个模块,没有就安装嘛!下载地址:https://pypi.python.org/pypi/setuptools
setuptools 是 Python 的基础包工具,和pip类似,可以帮助我们轻松的下载,构建,安装,升级,卸载 python的软件包。
wget https://pypi.python.org/packages/07/a0/11d3d76df54b9701c0f7bf23ea9b00c61c5e14eb7962bb29aed866a5844e/setuptools-36.2.7.zip#md5=b9e6c049617bac0f9e908a41ab4a29ac -P /download unzip /download/setuptools-36.2.7.zip -d /download/tmp/ cd /download/tmp/setuptools-36.2.7/ python setup.py install
#setuptools需要zlib模块,否则报错: "Compression requires the (missing) zlib module"
yum install zlib zlib-devel -y
#再重新安装python,安装完成后继续安装setuptools、pip
三.从源码安装ansible
安装ansible控制主机需要的python模块,顺道检验下pip命令是否安装成功
pip install paramiko PyYAML Jinja2 httplib2 six
笔者通过git下载的所有库都放在/opt目录下
git clone git://github.com/ansible/ansible.git --recursive cd /opt/ansible source ./hacking/env-setup
第一条ansible命令
编辑(或创建)/etc/ansible/hosts 并在其中加入一个或多个远程系统.你的public SSH key必须在这些系统的``authorized_keys``中
#mkdir /etc/ansible #vim /etc/ansible/hosts 192.168.119.132
ansible all -a "/bin/mkdir /opt/hehe" -k
查看192.168.110.132机器的/opt目录下是否生成hehe目录
进入python交互模式后,无法使用退格和方向键
pip install readline #然而,竟然报错:/usr/bin/ld: cannot find -lncurses yum install ncurses-devel ncurses-static -y pip install readline 一切ok