Ansible安装

本文是我学习ansible时的笔记和心得,如有错误或者不当的地方,还望不吝指出!

一、安装环境

操作系统版本:RedHat 6.3
系统内核版本:2.6.32-279.el6.x86_64

二、yum源安装

默认在redhat源里没有ansible,不过在fedora epel源里有ansible,配置完epel 源后,可以直接通过yum 进行安装。这里以redhat6.3为例:

# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install ansible

这种情况安装的ansible版本和依赖包版本如下:

Installed:
  ansible.noarch 0:2.2.0.0-3.el6                                                

Dependency Installed:
  PyYAML.x86_64 0:3.10-3.1.el6             libyaml.x86_64 0:0.1.3-4.el6_6       
  python-babel.noarch 0:0.9.4-5.1.el6      python-crypto.x86_64 0:2.0.1-22.el6  
  python-crypto2.6.x86_64 0:2.6.1-2.el6    python-httplib2.noarch 0:0.7.7-1.el6 
  python-jinja2-26.noarch 0:2.6-3.el6      python-keyczar.noarch 0:0.71c-1.el6  
  python-paramiko.noarch 0:1.7.5-2.1.el6   python-pyasn1.noarch 0:0.0.12a-1.el6 
  python-setuptools.noarch 0:0.6.10-3.el6  python-six.noarch 0:1.9.0-2.el6      
  sshpass.x86_64 0:1.05-1.el6   

注意:在yum install ansible时如果出现这种报错:
Error: Cannot retrieve repository metadata (repomd.xml) for repository: epel. Please verify its path and try again
这个报错是因为epel源文件里的链接有问题,不知道是否是网络原因还是里面的链接失效了,下面给出修改后的epel源文件,经过测试可以成功安装:

[root@localhost yum.repos.d]# cat epel.repo 
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1

三、源码安装

1、ansible基础插件安装

(1)、python2.7安装
https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz

    # tar xvzf 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 python

    ## 修改yum脚本,使其指向旧版本的python,已避免其无法运行
    # vim /usr/bin/yum
    #!/usr/bin/python  -->  #!/usr/bin/python2.6

(2)、setuptools模块安装
https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz

    # tar xvzf setuptools-7.0.tar.gz
    # cd setuptools-7.0
    # python setup.py install

(3)、pycrypto模块安装
https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz

    # tar xvzf pycrypto-2.6.1.tar.gz
    # cd pycrypto-2.6.1
    # python setup.py install

(4)、PyYAML模块安装
http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz

    # tar xvzf 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

https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.11.tar.gz

    # tar xvzf PyYAML-3.11.tar.gz
    # cd PyYAML-3.11
    # python setup.py install

(5)、Jinja2模块安装
https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.9.3.tar.gz

    # tar xvzf MarkupSafe-0.9.3.tar.gz
    # cd MarkupSafe-0.9.3
    # python setup.py install

https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz

    # tar xvzf Jinja2-2.7.3.tar.gz
    # cd Jinja2-2.7.3
    # python setup.py install

(6)、paramiko模块安装
https://pypi.python.org/packages/source/e/ecdsa/ecdsa-0.11.tar.gz

    # tar xvzf ecdsa-0.11.tar.gz
    # cd ecdsa-0.11
    # python setup.py install

https://pypi.python.org/packages/source/p/paramiko/paramiko-1.15.1.tar.gz

    # tar xvzf paramiko-1.15.1.tar.gz
    # cd paramiko-1.15.1
    # python setup.py install

(7)、simplejson模块安装
https://pypi.python.org/packages/source/s/simplejson/simplejson-3.6.5.tar.gz

    # tar xvzf simplejson-3.6.5.tar.gz
    # cd simplejson-3.6.5
    # python setup.py install

(8)、ansible安装
https://github.com/ansible/ansible/archive/v1.7.2.tar.gz

    # tar xvzf ansible-1.7.2.tar.gz
    # cd ansible-1.7.2
    # python setup.py install

2、ansible基础配置

(1)、SSH免密钥登录设置

    ## 生成公钥/私钥
    # ssh-keygen -t rsa -P ''
    [root@localhost ~]# scp .ssh/id_rsa_storm1.pub 192.168.109.150:/root/.ssh/id_rsa_storm1.pub
    ## 写入信任文件(将/root/.ssh/id_rsa_storm1.pub分发到其他服务器,并在所有服务器上执行如下指令):
    # cat /root/.ssh/id_rsa_storm1.pub >> /root/.ssh/authorized_keys
    # chmod 600 /root/.ssh/authorized_keys

Ansible安装_第1张图片
(2)、ansible配置

    # 配置文件/etc/ansible/ansible.cfg
    # mkdir -p /etc/ansible
    #cp ansible-1.7.2/examples/ansible.cfg /etc/ansible/
    # 配置文件/etc/ansible/hosts
    # vim /etc/ansible/hosts
    [test]
    192.168.109.150
    192.168.109.151

    测试
    # ansible test -m command -a 'uptime'
    ## 用来测试远程主机的运行状态
    # ansible test -m ping
    参看所有的参数
    ansible-doc -l

(3)、简单测试
ansible test -m command -a ‘uptime’
Ansible安装_第2张图片
注意:第一次运行时,需要输入一下“yes”【进行公钥验证】,后续无需再次输入。

四、其他安装方式

1、apt-get安装

在ubuntu及其衍生版中,可以通过增加ppa源进行apt-get安装,具体如下:

    1. $ sudo apt-get install software-properties-common
    2. $ sudo apt-add-repository ppa:ansible/ansible
    3. $ sudo apt-get update
    4. $ sudo apt-get install ansible

注意:由于暂时没有Ubuntu系统,所以尚未进行测试!

你可能感兴趣的:(Ansible)