Ansible自动化运维:技术与最佳实践
上QQ阅读APP看书,第一时间看更新

2.2 安装Ansible

Ansible的安装方式非常灵活,满足各种环境部署的需求。一般可以直接用源码进行安装,也可用操作系统软件包管理工具进行安装,下面分别介绍。

2.2.1 直接用源码安装

1.从GitHub源码库安装方式

很容易从Ansible项目的GitHub源码库提取出来安装,运行Ansible不需要root权限,也不依赖于其他软件,没有后台进程运行,不需要数据库支撑。不少社区用户直接使用Ansible的开发版本,这样可以利用最新的功能特性,也方便对项目进行测试。由于被管节点不需要安装任何软件,及时跟进、更新Ansible开发版相对于其他开源项目要容易得多。

从源码安装的过程如下:

1)提取Absible源代码:

        $ git clone git://github.com/ansible/ansible.git --recursive
        $ cd ./ansible
        $ source ./hacking/env-setup

如果想要安装过程中减少告警/错误信息输出,可以在安装时加上-q参数:

        $ source ./hacking/env-setup -q

2)如果系统没有安装过pip,先安装对应Python版本的pip:

        $ sudo easy_install pip

3)安装Ansible控制主机需要的Python模块:

        $ sudo pip install paramiko PyYAML Jinja2 httplib2 six

4)当更新Ansible版本时,不但要更新git的源码树,还要更新git中指向Ansible自身的模块,称为submodules:

        $ git pull --rebase
        $ git submodule update --init --recursive

5)一旦运行env-setup脚本,就意味着Ansible从源码中运行起来了。默认的资源清单inventory文件是 /etc/ansible/hosts,清单文件inventory可以指定其他位置:

        .. code-block:: bash
        $ echo "127.0.0.1" > ~/ansible_hosts
        $ export ANSIBLE_HOSTS=~/ansible_hosts

ANSIBLE_HOSTS是1.9版本之后开始使用的,代替之前使用的ANSIBLE_HOSTS。

可以在3.1节找到详细讲解inventory文件及使用的内容。

这样Ansible系统就安装完成了,后面就可以编写一些脚本开始对Ansible进行测试。

2.Tar包安装方式

不想通过GitHub提取方式获得Ansible的软件包,可以直接下载Ansible的Tar包,下载地址是http://releases.ansible.com/ansible。这里面存放着从Ansible最初发行的1.1版本开始,直到最新1.9.2版本,到现在共发行过的42个软件版本,可以根据需要下载。

Tar包的安装过程与上述源码安装方式一样,只是源代码获取方式不同而已。

3.制作rpm包安装方式

有时需要制作成rpm软件包再进行安装。在GitHub上Ansible项目中提取软件,或直接下载一个Tar包,然后使用make rpm命令创建RPM软件包,最后可分发这个软件包,或者使用它来安装Ansible。在创建之前,先确定已安装了rpm-build、make、python2-devel组件。操作过程如下:

        $ git clone git://github.com/ansible/ansible.git
        $ cd ./ansible
        $ make rpm
        $ sudo rpm -Uvh ~/rpmbuild/ansible-*.noarch.rpm

在Debian/Ubuntu环境中,可以采用类似的方法制作安装包,制作的命令是$ make deb。

2.2.2 用包管理工具安装

1.yum安装方式

要使用yum方式安装,需要有合适的yum源。Fedora用户只要连接着因特网,就可以直接使用官方的yum源安装。但对于RHEL、CentOS的官方yum源中没有Ansible安装包,这就需要先安装支持第三方的yum仓库组件,最常用的有EPEL、Remi、RPMForge等。在国内速度较快的高质量yum源有中国科技大学(http://mirrors.ustc.edu.cn)、浙江大学(http://mirrors.zju.edu.cn/epel/)、上海交通大学(http://ftp.sjtu.edu.cn/fedora/epel/)、网易163(http://mirrors.163.com)、sohu镜像源(http://mirrors.sohu.com/fedora-epel/)等。

下面安装EPEL作为部署Ansible的默认yum源。

·RHEL(CentOS)5版本:

        rpm -Uvh  http://mirrors.zju.edu.cn/epel/6/i386/epel-release-5-4.noarch.
            rpm
        rpm -Uvh  http://  mirrors.zju.edu.cn/epel/5/x86_64/epel-release-5-4.
            noarch.rpm

·RHEL(CentOS)6版本:

        rpm -Uvh  http://  mirrors.zju.edu.cn/epel/6/x86_64/epel-release-6-8.
            noarch.rpm
        rpm -Uvh http:// mirrors.zju.edu.cn/epel/6/i386/epel-release-6-8.noarch.
            rpm

·RHEL(CentOS)7版本:

        rpm -Uvh  http://  mirrors.zju.edu.cn/epel/7/x86_64/e/epel-release-7-5.
            noarch.rpm

准备好yum源之后,Ansible就可直接用yum命令安装了,命令如下:

        $ sudo yum install ansible

2.Apt (Ubuntu)安装方式

Ubuntu编译版可在如下地址中获得:https://launchpad.net/~ansible/+archive/ansible。

通过执行如下命令直接安装:

        $ sudo apt-get install software-properties-common
        $ sudo apt-add-repository ppa:ansible/ansible
        $ sudo apt-get update
        $ sudo apt-get install ansible

3.Homebrew (Mac OSX)安装方式

在Mac系统中,确定已经安装了Homebrew之后,直接执行下面命令安装Ansible:

        $ brew update
        $ brew install Ansible

4.pip方式安装

Ansible也支持可通过pip方式安装。pip是Python软件包的安装和管理工具,执行如下命令先安装pip:

        $ sudo easy_install pip

然后再安装Ansible:

        $ sudo pip install ansible

如果你是在OS Ⅹ系统上安装,编译器可能会有警告或出错,需要设置CFLAGS、CPPFLAGS环境变量:

        $ sudo CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install
            ansible

使用virtualenv的读者可通过virtualenv安装Ansible,然而不建议这样做,直接在全局安装Ansible。不要使用easy_install直接安装Ansible。

如果把Ansible安装在其他相对少见的Linux操作系统(如Gentoo、FreeBSD等)上,详见Ansible官网http://docs.ansible.com。