一、简介
前面我们介绍了,ansible能作为自动化配置管理,其实是由ansible的多种多样的模块来实现的。截止目前,ansible的模块已经高达3000+之多。但是个人在日常工作中,比较常见的大约20多个。下面我就大概介绍一些常见常用的模块。
二、invenroty清单文件
三、常用模块
3.1 ping 模块
ping模块执行成功后,会给你返回绿色的消息,并且有一个pong响应。all代表所有被管理的主机。
[root@ayunw ansible-example]
3.2 command 模块
因为ansible的默认模块是command,所以这里可以使用 -m 指定模块名 command,也可以直接省略。
[root@ayunw ansible-example]
3.3 shell模块
shell模块和command模块比较类似,但是shell被大家称为万能模块,很多操作command不支持,但是shell却支持。注意最后一种情况shell模块也是不支持的。但是可以将命令写在一个脚本,将脚本拷贝到远端执行,然后执行shell模块获取结果。
[root@ayunw ansible-example]
注意: 你可能会注意到上面出现了WARNING
警告。这不是报错,它只是告诉你,应该选择file
模块进行创建文件的操作会更好,而不是使用shell
模块操作。当然它还告诉你可以在ansible.cfg
配置文件中设置command_warnings=False
以关闭警告。
3.4 copy 模块
从ansible管理节点拷贝文件到远程主机。
[root@ayunw ansible-example]
3.5 fetch 模块
从远程主机获取文件到ansible管理节点,但是不支持目录操作
[root@ayunw ansible-example]
3.6 file 模块
3.7 hostname 模块
管理远程主机上的主机名
3.8 yum 模块
3.9 cron 模块
3.10 service 模块
用来管理服务器上的服务
3.11 group 模块
用于添加远程主机上的组
[root@ayunw ansible-example]
3.12 user 模块
管理远程主机上的用户的账号
3.13 setup 模块
可收集远程主机的facts变量的信息,相当于收集了目标主机的相关信息(如内核版本、操作系统信息、cpu、…),保存在ansible的内置变量中,之后我们有需要用到时,直接调用变量即可.这在ansible-playbook 中很有用。
[root@ayunw ansible-example]
3.14 authorized_key模块
为特定的用户账号添加或删除 SSH authorized keys
3.15 synchronize 模块
使用rsync 模块,系统必须安装rsync 包,否则无法使用这个模块
ansible dbsrvs -m shell -a 'yum -y install rsync'
ansible web -m synchronize -a ‘src=time.sh dest=/tmp/’
3.16 lineinfile 模块
正则匹配,更改某个关键参数值。比如这里修改SELINUX的值
ansible dbsrvs -a 'cat /etc/selinux/config | grep ^SELINUX='
ansible dbsrvs -m shell -a ‘cat /etc/selinux/config|grep “^SELINUX=”‘
10.10.108.30 | CHANGED | rc=0 >>
SELINUX= enforcing
3.17 replace 模块
和 sed 命令比较类似,用于正则匹配和替换
参数说明:
- 1:表示引用前面的小括号内容
● 文末抽奖送苹果了。烟台栖霞红富士苹果24个/箱。二哥尝了一下还不错,真的不吹牛,比吃过的大多数苹果都好吃。
抽奖条件
关注微信公众号:运维开发故事
回复“1123”即可参与!我们自费采购四箱苹果随机送给长期以来一直支持我们的粉丝,中奖者每人一箱。中奖者在开奖后6小时内未与本号主取得联系或者未留下邮寄地址信息视未自动放弃,解释权归本公众号所有!
开奖时间:
11月23日 上午12:00.
2022
温馨提示
一名常年穿梭于Google、阿里、百度、腾讯的一线运维从业者。是<<运维开发故事>>公众号的成员之一。不定期分享技术干货和对技术的理解与感悟。
如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我,期待与大家共同成长进步!
……………………
声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/202589.html