在上一篇文章中介绍过,Ansible通过调用特定的模块来执行特定的任务,所以模块对于Ansible来说是非常重要的。这里我们通过Ansible的ad-hoc模式来介绍Ansible的常用模块。
1、ad-hoc模式
Ansible主要通过ad-hoc和playbook两种模式来执行任务。ad-hoc通过Ansible提供的ansible命令一次执行一个任务。
ad-hoc的常用选项如下:
- -m:指定执行任务要调用的模块,如果不指定默认使用command模块
- -a:指定调用模块的对应参数,模块对应的参数及用法可以使用ansible-doc –s 模块名来查看
- -k:提示输入SSH登录密码而不是基于密钥的验证
- -b:提升权限
- --become-method:指定提升权限的方法,常用的有sudo和su,默认为sudo
- --become-user:指定执行sudo或su命令时切换的用户,默认为root用户
- -B:后台运行的超时时间
- -C:测试一下会改变什么内容,不会真正执行
- -f:设置线程数
- -i:指定主机清单文件的路径,默认为/etc/absible/hosts
ad-hoc的语法如下:
ansible 主机或主机组 -m 模块 -a '模块参数' 其他ad-hoc选项
注意:主机或主机组是在主机清单中定义的部分,比如在/etc/absible/hosts中定义的主机和主机组。
2、一个例子:使用ad-hoc在远程主机上执行date命令
实验环境
在Ansible系列文章中,都使用如下的实验环境及配置。
实验环境中有以下四台运行CentOS的主机,分别为:
- 主机A:IP地址192.168.0.110,操作系统为CentOS 7.6.1810
- 主机B:IP地址192.168.0.88,操作系统为CentOS 7.6.1810
- 主机C:IP地址192.168.0.106,操作系统为CentOS 6.10
- 主机D:IP地址192.168.0.61,操作系统为CentOS 6.10
其中主机A通过YUM安装ansible做为主控端,主机B分组为centos7,主机C和主机D分组为centos6。主机清单的配置如下:
[centos7] 192.168.0.88 [centos6] 192.168.0.106 192.168.0.61