我使用过puppet与salt,但这2个软件都需要安装客户端,并且更新很快,每次更新都是令人蛋疼的事,尤其是salt,喜欢他的命令功能,但bug太多,不敢在公司线上使用,puppet虽然稳定,但弄命令执行的时候,需要mco配置,非常麻烦,我公司由于跟多家公司合作,很多业务没办法安装客户端,所以没办法使用puppet与salt(虽然salt有ssh,但不太好使),最后找到了ansible,他既有命令执行也有配置管理,关键开发它的语言是python,paramiko进行ssh连接,跟我之前开发的自动管理软件都是使用paramiko进行操作,不需要安装客户端,满足我的需求,下面给大家介绍一下我是如何使用的。
	一、安装
	1、安装第三方epel源
	centos 5的epel
centos 6的epel
?查看系统版本
?
	由于是6版本所以安装6的epel
	2、安装ansible
如果需要自定义module或者想阅读源码、使用最新版本,可以去github里下载源码
?3、添加主机
?
	4、使用密码登陆
	ansible支持正则测试
	如果你有多台服务器的话,想并发运行,可以使用-f参数,默认是并发5
	5、使用密钥登陆测试
	二、模块应用
	6、文件传输
去客户端查看文件是否传输过来
?
	可以看到已经传过来了
	看看文件内容
	内容正常
	还有另外一个模块file,可以修改用户与权限
	下面是当前文件状态
	server文件是664权限,用户与组都是test
	修改一下
7、安装软件
?
	三、playbook配置管理
	8、playbook
	A.进行一下shell模块操作,测试删除文件
	先查看一下客户端的server-test是否存在
	可以看到是存在的
	然后写一个删除的playbook
运行
?在查看
?
	文件已经删除
	B.进行一下template模块操作,测试文件传输
C.使用service模块,测试一下服务重启
?D.多项目同时更新
?E.根据条件进行删除
?F.debug输出
?G.check模式,仅检测,但不实行
?使用diff与不使用作对比
?
	9、主机信息查看
	类似puppet的fact、salt的grains
数据太多,我就展示部分。
	
	10、优化ansible-playbook运行时间
	默认playbook是进行客户端fact搜集,一般如果你配置里没有使用fact的话,可以关闭这样就能减少运行时间
	没有优化的时候
	可以看到第一次8s,后2次都是3s
	下面是优化后(未使用fact)
运行时间就是2s
1
