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。