之前安装了一遍,到最后安装成功的时候出现了这种问题:
[root@localhost ~]# ansible webserver -m command -a 'uptime'
.....................................
ImportError: No module named _ssl
百度查了下,是因为python编译安装的时候没有安装openssl-devel的问题.
 
所以准备重头开始记录一下自己的安装过程。
安装过程可能会根据环境的不同有一些包的依赖,产生一些报错,
python的包都很好找,在https://pypi.python.org/pypi
右上角输入包名,就可以找到相应的安装包,下载安装便可以。
 
其实最简单的安装办法就是先安装setuotools 或 pip
然后:
    easy_install ansible
    pip install ansible
源码安装可以继续看下面
 
一,安装准备
1.安装ansible需要使用的一些包:
yum install openssl-devel libffi-devel zlib-devel gcc -y
 
2.下载python2.7,编译安装: 
[root@localhost ~]# tar zxf Python-2.7.8.tgz
[root@localhost ~]# cd Python-2.7.8
[root@localhost Python-2.7.8]# vim Modules/Setup.dist
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto
[root@localhost Python-2.7.8]# ./configure --prefix=/usr/local/
[root@localhost Python-2.7.8]# make --jobs=`grep processor /proc/cpuinfo | wc -l`  &&  make install
 
3.修改下默认的python命令(使系统默认python升级到2.7)
 
## 将python头文件拷贝到标准目录,以避免编译ansible时,找不到所需的头文件
[root@localhost Python-2.7.8]# cd /usr/local/include/
[root@localhost python2.7]# cp * ../
 

## 备份旧版本的python,并符号链接新版本的python

[root@localhost bin]# mv python python2.6
mv: overwrite `python2.6'? y
[root@localhost bin]# ln -s /usr/local/bin/python
 
## 修改yum脚本,使其指向旧版本的python,已避免其无法运行
[root@localhost bin]# vim /usr/bin/yum
#!/usr/bin/python  -->  #!/usr/bin/python2.6
二、安装过程:
1.安装setuptools模块安装
[root@localhost ~]# tar zxf setuptools-25.1.6.tar.gz
[root@localhost ~]# cd setuptools-25.1.6
[root@localhost setuptools-25.1.6]# python setup.py install
2.安装 pycrypto模块:
[root@localhost ~]# tar zxf pycrypto-2.6.1.tar.gz
[root@localhost ~]# cd pycrypto-2.6.1
[root@localhost pycrypto-2.6.1]# python setup.py install
3.安装PyYAML模块
[root@localhost ~]# tar zxf PyYAML-3.11.tar.gz
[root@localhost ~]# cd PyYAML-3.11  
[root@localhost PyYAML-3.11]# python setup.py install
......
build/temp.linux-x86_64-2.7/check_libyaml.c:2:18: error: yaml.h: No such file or directory
build/temp.linux-x86_64-2.7/check_libyaml.c: In function ‘main’:
build/temp.linux-x86_64-2.7/check_libyaml.c:5: error: ‘yaml_parser_t’ undeclared (first use in this function)
build/temp.linux-x86_64-2.7/check_libyaml.c:5: error: (Each undeclared identifier is reported only once
build/temp.linux-x86_64-2.7/check_libyaml.c:5: error: for each function it appears in.)
build/temp.linux-x86_64-2.7/check_libyaml.c:5: error: expected ‘;’ before ‘parser’
.............
 
因为报错,所以先安装yaml 模块
[root@localhost ~]# tar zxf yaml-0.1.5.tar.gz
[root@localhost ~]# cd yaml-0.1.5
[root@localhost yaml-0.1.5]# ./configure --prefix=/usr/local/
[root@localhost yaml-0.1.5]# make && make install
 
继续安装
[root@localhost ~]# cd PyYAML-3.11  
[root@localhost PyYAML-3.11]# python setup.py install
 
4.安装Jinja2模块
[root@localhost ~]# tar zxf Jinja2-2.8.tar.gz
[root@localhost ~]# cd Jinja2-2.8
[root@localhost Jinja2-2.8]# python setup.py install
 
5.安装paramiko模块
[root@localhost ~]# tar zxf paramiko-2.0.2.tar.gz
[root@localhost ~]# cd paramiko-2.0.2
[root@localhost paramiko-2.0.2]# python setup.py install
6.安装simplejson模块
[root@localhost ~]# tar zxf simplejson-3.8.2.tar.gz
[root@localhost ~]# cd simplejson-3.8.2
[root@localhost simplejson-3.8.2]# python setup.py install
7.安装ansible模块
[root@localhost ~]# tar xf v1.7.2
[root@localhost ~]# cd ansible-1.7.2/
[root@localhost ansible-1.7.2]# python setup.py install
 
至此安装已经完成了,这次安装比较顺利
我第一次安装的时候,出现了好多的包依赖,下面是我第一次安装过程中所用的包地址:
 
 
三、ansible的基本使用
ansible <pattern_hosts> -m <module_name> -a <arguments>
1.远程命令模块
command      //远程执行shell命令
scripts           //scp + shell
shell             //执行远程主机的shell脚本
eg:
ansible webserver -m command -a "uptime"
2.copy模块
ansible webserver -m copy -a "src=  dest=  owner=  group= mode= "
3.stat模块
4.get_url
5.yum模块
ansible webserver -m yum -a "name=    state= "
ansible webserver -m apt -a "name=    state= "
6.cron
ansible webserver -m cron -a "name='check dirs' hour='5.2'  job='ls -alh > /dev/null'"
7.mount
ansible webserver -m mount -a "name=/mnt src=/dev/sdb fstype=ext4 opts=ro state=present"
8.service
ansible webserver -m service -a "name=httpd state=stopped"
9.sysctl
10.user
ansible webserver -m user -a "name=dayuan comment='dayuanhello'"            //添加用户
ansible webserver -m user -a "name=dayuan state=absent removes=yes"       //删除用户
 

ansible的安装过程 和基本使用的更多相关文章

  1. Ansible的安装与使用初探

    一.环境准备 网络配置 管理端:192.168.237.201 受控端:192.168.237.202.192.168.237.203(一共2台) 硬件信息 CPU:1核 内存:512MB 磁盘:10 ...

  2. 运维自动化之ansible的安装与使用 转

    运维自动化之ansible的安装与使用 随着服务器数量的增长,我们需要一个批量工具去提高工作效率,之前用的是puppet,ansible的简单,适用让我眼前一亮,决定写一篇ansible从安装到基本配 ...

  3. ansible一键安装GreatSQL并构建MGR集群

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 利用ansible一键安装GreatSQL并完成MGR部署. 本次介绍如何利用ansible一键安装GreatSQL并完成 ...

  4. webstorm下载&&安装过程&&打开项目

    一.webstorm下载 WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为"Web前端开发神器"."最强大的HT ...

  5. vagrant 1.8.6 安装过程及总结遇到的坑

    下面先总结遇到的问题,这些问题如果你也遇到,可能需要搜索很多次才能找到原因. 如果想看安装过程,可以先直接跳到后面第二部分部分. 1 问题汇总: 1.1 vagrant版本过高问题. vagrant ...

  6. 安装过程错误[INS-30131]

    问题:Oracle Database 安装过程错误[INS-30131]   原因:安装用户没有对临时文件夹的读写权限   解决方案:   1.以管理员身份运行cmd.exe 2.输入命令(需启动Se ...

  7. TortoiseGIT的安装过程详解

    TortoiseGIT简介 TortoiseGIT 是Git版本控制系统的一个免费开源客户端,它是git版本控制的 Windows 扩展.可以使你避免使用枯燥而且不方便的命令行.它完全嵌入 Windo ...

  8. RabbitMQ 集群安装过程详解

    一.安装Erlang 1.rabbitMQ是基于erlang的,所以首先必须配置erlang环境. 从erlang官网下载 otp 18.3.下载链接:http://erlang.org/downlo ...

  9. JAVA安装过程中出现的“javac不是内部或外部指令”的解决方法

    近来重新安装了JAVA,安装过程中出现问题,网上找到解决办法,汇总发布. 解决流程: 1.确定自己的环境变量设置没问题,没有出现遗漏 : . 等情况 (具体环境变量设置百度) 2.环境变量设置后 ,d ...

随机推荐

  1. 第n+1次考试

    题目: 1. 中位数 [问题描述] 给定C个不同物品,每个物品有一重量和体积,保证每个物品的重量不一样.从中选出N个物品,在体积不超过F的情况下,使得选出的物品的重量的中位数最大.所谓中位数,就是排序 ...

  2. Delphi IDE 版本

    产品 compiler Version version bds 2007-WIN32 VER 180 185 11 5.0 2009 VER 200 13 6.0 XE VER 220 15 8.0 ...

  3. Solr查询参数

    引自:http://www.cnblogs.com/zhangweizhong/p/5056884.html 一.基本查询 q  查询的关键字,此参数最为重要,例如,q=id:1,默认为q=*:*, ...

  4. 关于C++静态成员函数访问非静态成员变量的问题

    静态成员函数不能访问非静态成员,这是因为静态函数属于类而不是属于整个对象,静态函数中的 member可能都没有分配内存.静态成员函数没有隐含的this自变量.所以,它就无法访问自己类的非静态成员 代码 ...

  5. 在Emacs中使用GNU Global

    背景 在我平时用Emacs编写C代码时,经常需要进行代码的跳转,主要需求为函数定义的跳转,某个具体函数的调用查找,某个结构体的定义跳转以及结构体中具体某一项的跳转等,GNU Global就能完全满足我 ...

  6. 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(三,接收彩信<2,下载彩信>)

    彩信的接收简介: 主要是由应用程序负责从彩信服务中心(MMSC Multimedia Messaging Service Center)下载彩信信息.大致的流程是Frameworks会先发出一条短信, ...

  7. 《流畅的python》读书笔记

    流畅的python 第1章 python数据模型 ---1.1 一摞Python风格的纸牌 特殊方法,即__method__,又被称为魔术方法(magic method)或者双下方法(dunder-m ...

  8. HDU 4585

    http://acm.hdu.edu.cn/showproblem.php?pid=4585 从原来的人中找出战斗数值最接近的,输出他们两人的序号 要在logn的复杂度完成查找,我用的是set,当然用 ...

  9. magento -- 给Magento提速之缓存上的探索

    依然在为Magento提速做努力,除了自带的缓存和编译,之前的所作的很多努力都是从减少JS,Css,图片等载入时间入手,而对页面载入耗时最早有时也是最大的一部分--获取页面数据没有做太多处理,以gap ...

  10. C#反射 字符串转为实体类,并做为参数传入泛型方法中使用

    工作中有这样一个需求,有N张不同的报表,每张报表对应一个数据源,统计数据采用内存方式,首先在内在里定义了数据源对应实体.统计条件用lamdba表达式式实现,通过工具对单元格进行定义.在实现过程中针对每 ...