介绍

Ansible是一个简单的自动化运维管理工具,可以用来自动化部署应用、配置、编排 task(持续交付、无宕机更新等),采用 paramiko 协议库(fabric 也使用这个)。
ansible - 图1

安装环境及介质

  1. 安装版本:Ansible 1.7.2<br /> 操作系统:Linux xxx 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux<br /> 虚拟机镜像:CentOS-6.6-x86_64-bin-DVD1.iso<br /> 系统配置:1C(core)/1G(mem)/8G(disk)<br /> 介质:<br />[ ](http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz)[ansible-1.7.2.tar.gz](https://github.com/ansible/ansible/archive/v1.7.2.tar.gz)<br />[ ](http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz)[ecdsa-0.11.tar.gz](https://pypi.python.org/packages/source/e/ecdsa/ecdsa-0.11.tar.gz)<br />[ ](http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz)[Jinja2-2.7.3.tar.gz](https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz)<br />[ ](http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz)[MarkupSafe-0.9.3.tar.gz](https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.9.3.tar.gz)<br />[ ](http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz)[paramiko-1.15.1.tar.gz](https://pypi.python.org/packages/source/p/paramiko/paramiko-1.15.1.tar.gz)<br />[ ](http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz)[pycrypto-2.6.1.tar.gz](https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz)<br />[ ](http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz)[Python-2.7.8.tgz](https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz)<br />[ ](http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz)[PyYAML-3.11.tar.gz](https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.11.tar.gz)<br />[ ](http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz)[setuptools-7.0.tar.gz](https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz)<br />[ ](http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz)[simplejson-3.6.5.tar.gz](https://pypi.python.org/packages/source/s/simplejson/simplejson-3.6.5.tar.gz)<br />[ yaml-0.1.5.tar.gz](http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz)

开始安装

Python2.7安装

$  tar –zxvf 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

修改yum脚本,使其指向旧版本的python,已避免其无法运行

$  vim /usr/bin/yum
  !/usr/bin/python  -->  #!/usr/bin/python2.6    (将Python改成Python2.6)

python-setuptools模块安装

$  tar -zxvf setuptools-7.0.tar.gz 
$  cd setuptools-7.0
$  python setup.py install

python-pycrypto模块安装

$  tar -zxvf pycrypto-2.6.1.tar.gz
$  cd pycrypto-2.6.1
$  python setup.py install

python-PyYAML模块安装

$  tar -zxvf 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 -zxvf PyYAML-3.11.tar.gz
$  cd PyYAML-3.11
$  python setup.py install

python-Jinja2模块安装

$  tar -zxvf MarkupSafe-0.9.3.tar.gz
$  cd MarkupSafe-0.9.3
$  python setup.py install

$  tar -zxvf Jinja2-2.7.3.tar.gz
$  cd Jinja2-2.7.3
$  python setup.py install

python-paramiko模块安装

$  tar -zxvf ecdsa-0.11.tar.gz
$  cd ecdsa-0.11
$  python setup.py install

$  tar -zxvf paramiko-1.15.1.tar.gz
$  cd paramiko-1.15.1
$  python setup.py install

python-simplejson模块安装

$  tar -zxvf simplejson-3.6.5.tar.gz
$  cd simplejson-3.6.5
$  python setup.py install

python-ansible模块安装

$  tar -zxvf ansible-1.7.2.tar.gz
$  cd ansible-1.7.2
$  python setup.py install

配置及测试

配置

SSH免密钥登录设置

$  ssh-keygen -t rsa -P ''

ansible配置

$   mkdir -p /etc/ansible
$   touch /etc/ansible/ansible.cfg
$   vim /etc/ansible/ansible.cfg
粘贴如下内容:
    [defaults]
    inventory      = /etc/ansible/hosts
    sudo_user=root
    remote_port=22
    host_key_checking=False
    remote_user=root
    log_path=/var/log/ansible.log
    module_name=command
    private_key_file=/root/.ssh/id_rsa
    no_log:True
$  touch /etc/ansible/hosts
$  vim /etc/ansible/hosts
粘贴如下内容:
[test]
192.168.91.137

测试

$  ansible test -m ping

参考文章