首页 Ansible教程Ansible常用模块详解

Ansible相关工具介绍,实例演示

Ansible-Playbook详解

运维派是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai

Ansible常用模块

2015年底270多个模块,2016年达到540个,2018年01月12日有1378个模块,2018年07月15日1852个模块,2019年05月25日(ansible 2.7.10)时2080个模块,2020年03月02日有3387个模块

虽然模块众多,但最常用的模块也就2,30个而已,针对特定业务只用10几个模块

常用模块帮助文档参考:

https://docs.ansible.com/ansible/latest/modules/modules_by_category.html

Command 模块

功能:在远程主机执行命令,此为默认模块,可忽略-m选项

注意:此命令不支持 $VARNAME < > | ; & 等,用shell模块实现

范例:

Shell模块

功能:和command相似,用shell执行命令

范例:

注意:调用bash执行命令 类似 cat /tmp/test.md | awk -F‘|’ ‘{print $1,$2}’ &> /tmp/example.txt 这些复杂命令,即使使用shell也可能会失败,解决办法:写到脚本时,copy到远程,执行,再把需要的结果拉回执行命令的机器

范例:将shell模块代替command,设为模块

Script模块

功能:在远程主机上运行ansible服务器上的脚本

范例:

Copy模块

功能:从ansible服务器主控端复制文件到远程主机

Fetch模块

功能:从远程主机提取文件至ansible的主控端,copy相反,目前不支持目录

范例:

范例:

File模块

功能:设置文件属性

范例:

unarchive模块

功能:解包解压缩

实现有两种用法:
1、将ansible主机上的压缩包传到远程主机后解压缩至特定目录,设置copy=yes
2、将远程主机上的某个压缩包解压缩到指定路径下,设置copy=no

常见参数:

  • copy:默认为yes,当copy=yes,拷贝的文件是从ansible主机复制到远程主机上,如果设置为copy=no,会在远程主机上寻找src源文件
  • remote_src:和copy功能一样且互斥,yes表示在远程主机,不在ansible主机,no表示文件在ansible主机上
  • src:源路径,可以是ansible主机上的路径,也可以是远程主机上的路径,如果是远程主机上的路径,则需要设置copy=no
  • dest:远程主机上的目标路径
  • mode:设置解压缩后的文件权限

范例:

Archive模块

功能:打包压缩

范例:

3.4.9 Hostname模块

功能:管理主机名

范例:

Cron模块

功能:计划任务
支持时间:minute,hour,day,month,weekday

范例:

Yum模块

功能:管理软件包,只支持RHEL,CentOS,fedora,不支持Ubuntu其它版本

范例:

Service模块

功能:管理服务

范例:

User模块

功能:管理用户

范例:

Group模块

功能:管理组

范例:

Lineinfile模块

ansible在使用sed进行替换时,经常会遇到需要转义的问题,而且ansible在遇到特殊符号进行替换时,存在问题,无法正常进行替换 。其实在ansible自身提供了两个模块:lineinfile模块和replace模块,可以方便的进行替换

功能:相当于sed,可以修改文件内容

范例:

Replace模块

该模块有点类似于sed命令,主要也是基于正则进行匹配和替换

范例:

Setup模块

功能: setup 模块来收集主机的系统信息,这些 facts 信息可以直接以变量的形式使用,但是如果主机较多,会影响执行速度,可以使用gather_facts: no 来禁止 Ansible 收集 facts 信息

范例:

范例:

本文链接:http://www.yunweipai.com/34676.html

Ansible相关工具介绍,实例演示

Ansible-Playbook详解

网友评论comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2012-2020 YUNWEIPAI.COM - 运维派
扫二维码
扫二维码
返回顶部