源码安装Ansible
一、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 进行安装。
包的版本如下:
Python-2.7..tgz
Jinja2-2.7..tar.gz
MarkupSafe-0.9..tar.gz
PyYAML-3.11.tar.gz
ansible-1.7..tar.gz
ecdsa-0.11.tar.gz
paramiko-1.15..tar.gz
pycrypto-2.6..tar.gz
setuptools-7.0.tar.gz
simplejson-3.6..tar.gz
yaml-0.1..tar.gz
1、安装python2.7
# tar xvzf Python-2.7..tgz
# cd Python-2.7.
# ./configure --prefix=/usr/local
# make --jobs=`grep processor /proc/cpuinfo | wc -l`
# make install
# 将python头文件拷贝到标准目录,以避免编译ansible时,找不到所需的头文件
# cd /usr/local/include/python2.
# cp -a ./* /usr/local/include/
# 备份旧版本的python,并符号链接新版本的python
# cd /usr/bin
# mv python python2.6
# ln -s /usr/local/bin/python python
2、安装setuptools模块
# tar xvzf setuptools-7.0.tar.gz
# cd setuptools-7.0
# python setup.py install
3、安装pycrypto模块
# tar xvzf pycrypto-2.6..tar.gz
# cd pycrypto-2.6.
# python setup.py install
4、安装PyYAML模块
# tar xvzf yaml-0.1..tar.gz
# cd yaml-0.1.
# ./configure --prefix=/usr/local
# make --jobs=`grep processor /proc/cpuinfo | wc -l`
# make install # tar xvzf PyYAML-3.11.tar.gz
# cd PyYAML-3.11
# python setup.py install
5、安装Jinja2模块
# tar xvzf MarkupSafe-0.9..tar.gz
# cd MarkupSafe-0.9.
# python setup.py install # tar xvzf Jinja2-2.7..tar.gz
# cd Jinja2-2.7.
# python setup.py install
6、安装paramiko模块
# tar xvzf ecdsa-0.11.tar.gz
# cd ecdsa-0.11
# python setup.py install # tar xvzf paramiko-1.15..tar.gz
# cd paramiko-1.15.
# python setup.py install
7、安装simplejson模块
# tar xvzf simplejson-3.6..tar.gz
# cd simplejson-3.6.
# python setup.py install
8、安装ansible
# tar xvzf ansible-1.7..tar.gz
# cd ansible-1.7.
# python setup.py install
源码安装Ansible的更多相关文章
- Linux 源码安装Ansible 参考篇
Ansible 源码搭建配置 近期在学习自动化运维相关技术,文章主要模拟内网情况下对Ansible的安装演示,源码安装较为繁琐.枯燥,尤其是在实际安装过程中可能出现各式各样的问题,所有在安装过程中尽量 ...
- 一键源码安装Ansible
#!/bin/bash # @Name:install_ansible.sh # @Author:Eivllom # @Create -- # @Modify -- app_soft="/a ...
- CentOS 7 源码安装Ansible 2.x
1.安装Python 3.x环境 [root@ansible ~]# yum install -y python36 python36-pip git [root@ansible ~]# ln -s ...
- ansible源码安装
一.升级python 笔者系统为centos6.5,系统默认安装python2.6,虽然ansible官方文档要求python版本为2.6或2.7,然而许多人都说使用2.6可能出现一系列问题,所以作者 ...
- 通过自制yum源离线安装ansible
系统环境 --CentOS release 7 python版本--Python 3.5.4 背景:在企业环境中,安装ansible的服务器往往不能访问互联网,简单的下载ansible源码安装,会 ...
- 自制yum源离线安装ansible
适应场景 在实际生产环境中,服务器往往是不能访问互联网,如果简单的下载ansible源码安装,会碰到缺少各种依赖包的问题,因此,推荐制作yum源,然后使用yum安装ansible. 实验环境 模拟可以 ...
- 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 ...
- 搭建LNAMP环境(七)- PHP7源码安装Memcached和Memcache拓展
上一篇:搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展 一.安装Memcached 1.yum安装libevent事件触发管理器 yum -y install libe ...
- 搭建LNAMP环境(二)- 源码安装Nginx1.10
上一篇:搭建LNAMP环境(一)- 源码安装MySQL5.6 1.yum安装编译nginx需要的包 yum -y install pcre pcre-devel zlib zlib-devel ope ...
随机推荐
- Android 开发实践 ViewGroup 实现左右滑出窗口(一)
利用假期把以前做的东西总结整理一下,先从简单的开始吧.实现的效果是这样的: 做了个截屏动画,比例有点不对了,凑合着看吧. 整个窗口有3部分组成,中间的主界面是个列表,左边的滑出界面是个菜单,右边的 ...
- WCF存储图片到指定文件夹下
string path = System.IO.Directory.GetCurrentDirectory() + @"\POIImages\"; Guid imgid = Gui ...
- iOS开发之指定UIView的某几个角(小于4)为圆角
在iOS开发中,我们经常会遇到View设置圆角的问题,如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可(项目需要使用QuartzCore ...
- Uploadify 笔记分享 -- 2014年10月18日
最近要做一个项目,有个部分需要用到Uploadify,以前用过,但不是很懂,找了无数遍的中文文档,发现好多都是以前的,都不能用,一时间索性自己写了个笔记,随用随查 <form> <i ...
- 注解SpringMVC
<!--注解映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.Reque ...
- 子树大小平衡树(Size Balanced Tree,SBT)操作模板及杂谈
基础知识(包括但不限于:二叉查找树是啥,SBT又是啥反正又不能吃,平衡树怎么旋转,等等)在这里就不(lan)予(de)赘(duo)述(xie)了. 先贴代码(数组模拟): int seed; int ...
- javascript——可以判断值的类型的函数
function classof(o){ return Object.prototype.toString.call(0).slice(8,-1); } Function.prototype.getN ...
- css学习--inline-block详解及dispaly:inline inline-block block 三者区别精要概括
*知识储备: 内联元素:是不可以控制宽和高.margin等:并且在同一行显示,不换行. 块级元素:是可以控制宽和高.margin等,并且会换行. 1.inline-block 详解 (1)一句话就是在 ...
- Python Tutorial 学习(五)--Data Structures
5. Data Structures 这一章来说说Python的数据结构 5.1. More on Lists 之前的文字里面简单的介绍了一些基本的东西,其中就涉及到了list的一点点的使用.当然,它 ...
- Caesar
要求实现用户输入一个数改变26个字母的排列顺序 例如输入3: DEFGHIJKLMNOPQRSTUVWXYZABC 输入-3: XYZABCDEFGHIJKLMNOPQRSTUVW 使用循环链表 代码 ...