一 需要安装些什么

Ansible默认通过 SSH 协议管理机器.

安装Ansible之后,不需要启动或运行一个后台进程,或是添加一个数据库.只要在一台电脑(可以是一台笔记本)上安装好,就可以通过这台电脑管理一组远程的机器.在远程被管理的机器上,不需要安装运行任何软件,因此升级Ansible版本不会有太多问题.

二 ansible版本选择

因为Ansible可以很简单的从源码运行,且不必在远程被管理机器上安装任何软件,很多Ansible用户会跟进使用开发版本.

Ansible一般每两个月出一个发行版本.小bugs一般在下一个发行版本中修复,并在稳定分支中做backports.大bugs会在必要时出一个维护版本,不过这不是很频繁.

若你希望使用Ansible的最新版本,并且你使用的操作系统是 Red Hat Enterprise Linux (TM), CentOS, Fedora, Debian, Ubuntu,我们建议使用系统的软件包管理器.

另有一种选择是通过”pip”工具安装,”pip”是一个安装和管理Python包的工具.

若你希望跟进开发版本,想使用和测试最新的功能特性,我们会分享如何从源码运行Ansible的方法.从源码运行程序不需要进行软件安装.

三 对管理主机的要求

目前,只要机器上安装了 Python 2.6 或 Python 2.7 (windows系统不可以做控制主机),都可以运行Ansible.

主机的系统可以是 Red Hat, Debian, CentOS, OS X, BSD的各种版本,等等.

自2.0版本开始,ansible使用了更多句柄来管理它的子进程,对于OS X系统,你需要增加ulimit值才能使用15个以上子进程,方法 sudo launchctl limit maxfiles 1024 2048,否则你可能会看见”Too many open file”的错误提示.

四 对客户端主机的要求

通常我们使用 ssh 与托管节点通信,默认使用 sftp.如果 sftp 不可用,可在 ansible.cfg 配置文件中配置成 scp 的方式. 在托管节点上也需要安装 Python 2.4 或以上的版本.如果版本低于 Python 2.5或者高于Python3 ,还需要额外安装一个模块:

python-simplejson

说明三点:

1、没安装python-simplejson,也可以使用Ansible的”raw”模块和script模块,因此从技术上讲,你可以通过Ansible的”raw”模块安装python-simplejson,之后就可以使用Ansible的所有功能了.

2、如果托管节点上开启了SElinux,你需要安装libselinux-python,这样才可使用Ansible中与copy/file/template相关的函数.你可以通过Ansible的yum模块在需要的托管节点上安装libselinux-python.

3、Python 3 与 Python 2 是稍有不同的语言,大多数Python程序还不能在 Python 3 中正确运行.一些Linux发行版(Gentoo, Arch)没有默认安装 Python 2.X 解释器.在这些系统上,你需要安装一个 Python 2.X 解释器,并在 inventory (详见 Inventory文件) 中设置

‘ansible_python_interpreter’ 变量指向你的 2.X Python.你可以使用 ‘raw’ 模块在托管节点上远程安装Python 2.X.

例如:
ansible myhost -m raw -a "yum install -y python2 python-simplejson"
 这条命令可以通过远程方式在托管节点上安装 Python 2.X 和 simplejson 模块.

Red Hat Enterprise Linux, CentOS, Fedora, and Ubuntu 等发行版都默认安装了 2.X 的解释器,包括几乎所有的Unix系统也是如此.

五 安装ansible管理主机方法

5.1 从源码安装的步骤

5.1.1 获取软件包

$ git clone git://github.com/ansible/ansible.git --recursive
$ cd ./ansible

5.1.2 使用 Bash

$ source ./hacking/env-setup

5.1.3 使用 Fish

$ . ./hacking/env-setup.fish

5.1.4 如果没有安装pip, 请先安装对应于你的Python版本的pip

$ sudo easy_install pip

5.1.5 以下的Python模块也需要安装

$ sudo pip install paramiko PyYAML Jinja2 httplib2 six

说明:

当更新ansible版本时,不只要更新git的源码树,也要更新git中指向Ansible自身模块的 “submodules” (不是同一种模块)

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

一旦运行env-setup脚本,就意味着Ansible从源码中运行起来了.默认的inventory文件是 /etc/ansible/hosts.inventory文件也可以另行指定 (详见 Inventory文件) :

$ echo "127.0.0.1" > ~/ansible_hosts
$ export ANSIBLE_HOSTS=~/ansible_hosts

你可以在手册的后续章节阅读更多关于 inventory 文件的使用,现在让我们测试一条ping命令:

$ ansible all -m ping --ask-pass

你也可以使用命令 “sudo make install”

5.2 通过Yum安装ansible

通过Yum安装RPMs适用于 EPEL6, 7, 以及仍在支持中的Fedora发行版.

托管节点的操作系统版本可以是更早的版本(如 EL5), 但必须安装 Python 2.4 或更高版本的Python.

Fedora 用户可直接安装Ansible, 但RHEL或CentOS用户,需要配置EPEL

# install the epel-release RPM if needed on CentOS, RHEL, or Scientific Linux
$ sudo yum install ansible

你也可以自己创建RPM软件包.在Ansible项目的checkout的根目录下,或是在一个tarball中,使用 make rpm 命令创建RPM软件包. 然后可分发这个软件包或是使用它来安装Ansible.在创建之前,先确定你已安装了 rpm-buildmake, and python2-devel .

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

5.3 通过Apt安装ansible

Ubuntu 编译版可在PPA中获得: ` <https://launchpad.net/~ansible/+archive/ansible>`_.

配置PPA及安装ansible,执行如下命令:

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

说明:

在早期Ubuntu发行版中, “software-properties-common” 名为 “python-software-properties”.

也可从源码checkout中创建 Debian/Ubuntu 软件包,执行:

$ make deb

或许你也想从源码中运行最新发行版本,可看前面的说明.

5.4 Pip安装ansible方法

Ansible可通过 “pip” 安装(安装和管理Python包的工具),若你还没有安装 pip,可执行如下命令安装:

$ sudo easy_install pip

然后安装Ansible:

$ sudo pip install ansible

最新文章

  1. C++中虚析构函数作用
  2. &quot;use strict&quot;
  3. (inline)内联函数在IOS开发中的使用
  4. La=LaULb (单链表)
  5. FPGA中改善时序性能的方法_advanced FPGA design
  6. POJ 1324 Holedox Moving 搜索
  7. HDU 1085-Holding Bin-Laden Captive!(生成功能)
  8. 从零开始学C++之IO流类库(二):文件流(fstream, ifstream, ofstream)的打开关闭、流状态
  9. Golang:测试map是否存在
  10. 以前的loginUI
  11. 老李推荐:第1章3节《MonkeyRunner源码剖析》概述:架构
  12. fetch的使用说明
  13. Mayor&#39;s posters
  14. Java高并发秒杀系统API之SSM框架集成swagger与AdminLTE
  15. pytroch nn.Module源码解析(1)
  16. React Native基础&amp;入门教程:初步使用Flexbox布局
  17. java中null是什么,以及使用中要注意的事项
  18. oracle数据导出以及导入
  19. class-dump在osx 10.11以后安装方法
  20. Python tricks(7) -- new-style class的__slots__属性

热门文章

  1. 【xlwings1】多线程写入excel数据
  2. 通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能&#39;menufile
  3. 20190817-T1-LOJ6322「雅礼国庆 2017 Day6」Star Way To Heaven
  4. Kubernetes 基于 ubuntu18.04 手工部署 (k8s)
  5. flask的基本操作
  6. NLog系列之NLong.config变量配置篇
  7. js封装ajax的方法
  8. leetcode 76 dp&amp; 强连通分量&amp;并查集经典操作
  9. 2019.9.26 csp-s模拟测试52 反思总结
  10. vagrant简介