Ansible 常用模块介绍

2019-05-16 0 By admin

1、ping 模块

检查机器是否能连通:
ansible hostgroup -m ping

2、setup 模块

用于收集远程主机的一些基本信息。
filter 参数用于对输出结果进行过滤。

  1. ansible_all_ipv4_addresses:仅显示ipv4的信息。
  2. ansible_devices:仅显示磁盘设备信息。
  3. ansible_distribution:显示是什么系统,例:centos,suse等。
  4. ansible_distribution_major_version:显示是系统主版本。
  5. ansible_distribution_version:仅显示系统版本。
  6. ansible_machine:显示系统类型,例:32位,还是64位。
  7. ansible_eth0:仅显示eth0的信息。
  8. ansible_hostname:仅显示主机名。
  9. ansible_kernel:仅显示内核版本。
  10. ansible_lvm:显示lvm相关信息。
  11. ansible_memtotal_mb:显示系统总内存。
  12. ansible_memfree_mb:显示可用系统内存。
  13. ansible_memory_mb:详细显示内存情况。
  14. ansible_swaptotal_mb:显示总的swap内存。
  15. ansible_swapfree_mb:显示swap内存的可用内存。
  16. ansible_mounts:显示系统磁盘挂载情况。
  17. ansible_processor:显示cpu个数(具体显示每个cpu的型号)。
  18. ansible_processor_vcpus:显示cpu个数(只显示总的个数)。

3、raw 模块

执行原始命令,而不是通过模块。支持重定向符号。
ansible dev3 -m raw -a "cat /etc/hosts >> /tmp/host"

4、yum 模块

yum 安装包管理模块。提供的选:
– config_file:yum的配置文件 (optional)
– disable_gpg_check:关闭gpg_check (optional)
– disablerepo:不启用某个源 (optional)
– enablerepo:启用某个源(optional)
– name:要进行操作的软件包的名字,默认最新的程序包,指明要安装的程序包,可以带上版本号,也可以传递一个url或者一个本地的rpm包的路径
– state:状态(present,absent,latest),表示是安装还卸载
present:默认的,表示为安装
lastest: 安装为最新的版本
absent:表示删除

5、apt 模块

这个模块是ubuntu/Debian作为远端节点的OS的时候,用的最多的。

6、pip 模块

用于管理Python库依赖项,为了使用pip模块,必须提供参数name或者requirements。

7、synchronize 模块

使用rsync同步文件,将主控方目录推送到指定节点的目录下。

8、copy 模块

从ansible主机向目标主机拷贝文件。
ansible dev3 -m copy -a "src=/home/test.sh dest=/tmp/ owner=root group=root mode=0755"

9、user 模块与 group 模块

系统用户和用户组模块

10、service 模块

系统服务管理,测试发现不支持centos 7.*

11、get_url 模块

通过http、https或者ftp协议下载文件,类似于wget。
ansible dev3 -m get_url -a "url=http://www.baidu.com dest=/tmp/index.html"

12、fetch 模块

它用于从远程机器获取文件,并将其本地存储在由主机名组织的文件树中。
ansible dev3 -m fetch -a "src=/etc/hosts dest=/tmp/fetched"

13、file 模块

用户管理远程主机上的文件。
包含的选项:
– force:需要在两种情况下强制创建软链接。有两个选项:yes|no
一种是源文件不存在但之后会建立的情况下;
另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链。
– group:定义文件/目录的属组
– mode:定义文件/目录的权限
– owner:定义文件/目录的属主
– path: 执行要操作的文件,dest,name的别名
– recurse:递归的设置文件的属性,只对目录有效
– src:要被链接的源文件的路径,只应用于state=link的情况
– dest:被链接到的路径,只应用于state=link的情况
– state:
directory:如果目录不存在,创建目录
file:即使文件不存在,也不会被创建
link:创建软链接
hard:创建硬链接
touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间
absent:删除目录、文件或者取消链接文件

ansible dev3 -m file -a "path=/tmp/test.sh state=absent"

14、unarchive 模块

解压缩模块;
-copy 设置为 true,从ansible主机拷贝至目标主机;否则直接在目标主机查找文件。
– remote_src : 设置为true,压缩文件已经存在于远程主机。
-src 必选项;指定操作文件,受remote_src配置影响。
-dest : 目标路径

15、command 模块

在远程主机中,操作范围内的所有shell命令。
ansible dev3 -m command -a "echo $PATH"
在使用此模块中,重定向符等存在不能使用的情况。

16、shell 模块

执行远程主机的shell脚本文件。
ansible dev3 -m shell -a "/tmp/test.sh 123"

17、script 模块

将ansible主机的本机脚本文件,传输到远程主机中,并执行。

18、template 模块

基于模板方式生成一个文件复制到远程主机(template使用Jinjia2格式作为文件模版,进行文档内变量的替换的模块。它的每次使用都会被ansible标记为”changed”状态。)

19、其他模块

set_fact、mount、cron