集群运维自动化工具ansible的安装与使用(包括模
我使用过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