集群运维自动化工具ansible的安装与使用(包括模

乐清SEO_服务器技术_ 乐清网2021-02-04 转载自:

我使用过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