一、Ansible介绍

ansible是一款的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

1、连接插件connection plugins:负责和被监控端实现通信;
2、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
3、各种模块核心模块、command模块、自定义模块;
4、借助于插件完成记录日志邮件等功能;
5、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

二、Ansible特性
1、no agents:不需要在被管控主机上安装任何客户端;
2、no server:无服务器端,使用时直接运行命令即可;
3、modules in any languages:基于模块工作,可使用任意语言开发模块;
4、yaml,not code:使用yaml语言定制剧本playbook;
5、ssh by default:基于SSH工作;
6、strong multi-tier solution:可实现多级指挥。

三、Ansible优点

1、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
2、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
3、使用python编写,维护更简单,ruby语法过于复杂;
4、支持sudo。

四、Ansible工作机制

下图来源于网络:

五、源码安装Ansible
源码安装需要python2.6以上版本,其依赖模块paramiko、PyYAML、Jinja2、httplib2、simplejson、pycrypto等模块,以上模块可以通过pip或easy_install 进行安装。

包的版本如下:

  1. Python-2.7..tgz
  2. Jinja2-2.7..tar.gz
  3. MarkupSafe-0.9..tar.gz
  4. PyYAML-3.11.tar.gz
  5. ansible-1.7..tar.gz
  6. ecdsa-0.11.tar.gz
  7. paramiko-1.15..tar.gz
  8. pycrypto-2.6..tar.gz
  9. setuptools-7.0.tar.gz
  10. simplejson-3.6..tar.gz
  11. yaml-0.1..tar.gz

1、安装python2.7

  1. # tar xvzf Python-2.7..tgz
  2. # cd Python-2.7.
  3. # ./configure --prefix=/usr/local
  4. # make --jobs=`grep processor /proc/cpuinfo | wc -l`
  5. # make install
  6. # 将python头文件拷贝到标准目录,以避免编译ansible时,找不到所需的头文件
  7. # cd /usr/local/include/python2.
  8. # cp -a ./* /usr/local/include/
  9. # 备份旧版本的python,并符号链接新版本的python
  10. # cd /usr/bin
  11. # mv python python2.6
  12. # ln -s /usr/local/bin/python python

2、安装setuptools模块

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

3、安装pycrypto模块

  1. # tar xvzf pycrypto-2.6..tar.gz
  2. # cd pycrypto-2.6.
  3. # python setup.py install

4、安装PyYAML模块

  1. # tar xvzf yaml-0.1..tar.gz
  2. # cd yaml-0.1.
  3. # ./configure --prefix=/usr/local
  4. # make --jobs=`grep processor /proc/cpuinfo | wc -l`
  5. # make install
  6.  
  7. # tar xvzf PyYAML-3.11.tar.gz
  8. # cd PyYAML-3.11
  9. # python setup.py install

5、安装Jinja2模块

  1. # tar xvzf MarkupSafe-0.9..tar.gz
  2. # cd MarkupSafe-0.9.
  3. # python setup.py install
  4.  
  5. # tar xvzf Jinja2-2.7..tar.gz
  6. # cd Jinja2-2.7.
  7. # python setup.py install

6、安装paramiko模块

  1. # tar xvzf ecdsa-0.11.tar.gz
  2. # cd ecdsa-0.11
  3. # python setup.py install
  4.  
  5. # tar xvzf paramiko-1.15..tar.gz
  6. # cd paramiko-1.15.
  7. # python setup.py install

7、安装simplejson模块

  1. # tar xvzf simplejson-3.6..tar.gz
  2. # cd simplejson-3.6.
  3. # python setup.py install

8、安装ansible

  1. # tar xvzf ansible-1.7..tar.gz
  2. # cd ansible-1.7.
  3. # python setup.py install

源码安装Ansible的更多相关文章

  1. Linux 源码安装Ansible 参考篇

    Ansible 源码搭建配置 近期在学习自动化运维相关技术,文章主要模拟内网情况下对Ansible的安装演示,源码安装较为繁琐.枯燥,尤其是在实际安装过程中可能出现各式各样的问题,所有在安装过程中尽量 ...

  2. 一键源码安装Ansible

    #!/bin/bash # @Name:install_ansible.sh # @Author:Eivllom # @Create -- # @Modify -- app_soft="/a ...

  3. CentOS 7 源码安装Ansible 2.x

    1.安装Python 3.x环境 [root@ansible ~]# yum install -y python36 python36-pip git [root@ansible ~]# ln -s ...

  4. ansible源码安装

    一.升级python 笔者系统为centos6.5,系统默认安装python2.6,虽然ansible官方文档要求python版本为2.6或2.7,然而许多人都说使用2.6可能出现一系列问题,所以作者 ...

  5. 通过自制yum源离线安装ansible

    系统环境 --CentOS release 7 python版本--Python 3.5.4   背景:在企业环境中,安装ansible的服务器往往不能访问互联网,简单的下载ansible源码安装,会 ...

  6. 自制yum源离线安装ansible

    适应场景 在实际生产环境中,服务器往往是不能访问互联网,如果简单的下载ansible源码安装,会碰到缺少各种依赖包的问题,因此,推荐制作yum源,然后使用yum安装ansible. 实验环境 模拟可以 ...

  7. mono-3.4.0 源码安装时出现的问题 [do-install] Error 2 [install-pcl-targets] Error 1 解决方法

    Mono 3.4修复了很多bug,继续加强稳定性和性能(其实Mono 3.2.8 已经很稳定,性能也很好了),但是从http://download.mono-project.com/sources/m ...

  8. 搭建LNAMP环境(七)- PHP7源码安装Memcached和Memcache拓展

    上一篇:搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展 一.安装Memcached 1.yum安装libevent事件触发管理器 yum -y install libe ...

  9. 搭建LNAMP环境(二)- 源码安装Nginx1.10

    上一篇:搭建LNAMP环境(一)- 源码安装MySQL5.6 1.yum安装编译nginx需要的包 yum -y install pcre pcre-devel zlib zlib-devel ope ...

随机推荐

  1. 你需要知道的 Android 拍照适配方案

    近段时间,家里陪自己度过大学四年的电脑坏了,挑选好的新电脑配件终于在本周全部到货,自己动手完成组装.从AMD到i7的CPU,6G内存到14G内存,打开 AndroidStudio 的速度终于杠杆的上去 ...

  2. Java基础知识强化07:打印出空心菱形

    1.如图打印出空心菱形: 2.下面是逻辑实现代码: package himi.hebao04; import java.util.Scanner; public class TestDemo08 { ...

  3. nodejs 按行读取 readline

                fs.mkdirSync('./yotmp');      }                  log(out);               input: file,    ...

  4. iptables学习笔记

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3812510.html ...

  5. Axiom3D学习日记 2.介绍SceneManager,SceneNode,Entity

    SceneManager(场景管理类) 所有出现在屏幕里的东西都受SceneManager管理(最好是这样),当你放置对象在场景里,SceneManager就会跟踪他们的位置,当你为场景创建一个相机, ...

  6. 表达式:使用API创建表达式树(6)

    一.ConstantExpression:表示具有常量值的表达式.因为表达式应用过程中,参数据多是 Expressions 类型,算是对常量值的一种包装吧. ConstantExpression使用比 ...

  7. 【原创】Git版本控制器的基本使用

    关于git Git,是一个分布式版本控制软件.最初本是为了更好的管理Linux内核开发而被林纳斯·托瓦兹开发,后来因为项目开发中版本控制的强烈需求,而git也日趋成熟,最终成为了一个独立的版本控制软件 ...

  8. magic_quotes_gpc、mysql_real_escape_string、addslashes的区别及用法

    本篇文章,主要先重点说明magic_quotes_gpc.mysql_real_escape_string.addslashes 三个函数方法的含义.用法,并举例说明.然后阐述下三者间的区别.关系.一 ...

  9. hadoop 分片与分块,map task和reduce task的理解

    分块:Block HDFS存储系统中,引入了文件系统的分块概念(block),块是存储的最小单位,HDFS定义其大小为64MB.与单磁盘文件系统相似,存储在 HDFS上的文件均存储为多个块,不同的是, ...

  10. UOJ222 NOI2016 区间 线段树+FIFO队列

    首先将区间按长度排序后离散化端点(这里的“长度”指的是离散化之前区间的实际长度) 然后模拟一个队列,区间按排好的顺序依次进入,直到某个点被覆盖了M次.之后依次出队,直到所有点都被覆盖小于M次 修改和询 ...