Ansible之模块参数(二)

前一篇文章我们说了,如果你不加-m这个参数,默认是使用command这个模块的,但是你要跟-a这个参数,就是Linux的命令和参数,那么应该是什么格式呢?

网上搜了一把,就举个栗子:
[root@controller ~]# ansible webservers -a 'ls -l /tmp/'

运行结果如下图:
Ansible之模块参数(二)

对于命令格式,简单说一下:
ansible:给你干活的工具名,必须要有
webservers:在ansible的hosts仓库中定义一堆服务器的组名,包含多个服务器的主机名和(或)IP地址
-a:这个就是你要用的模块的参数,要放在引号里,这个很重要,不加引号会报错的。至于是单引号还是双引号,默认你用单引号,有错误了再换双引号试试。

'ls -l /tmp/':单引号里面的,就是Linux的shell命令,ls就是list命令了

从结果来看,ansible基本也是按照linux的命令结果给你输出的,没什么可以讲的。

so,以上的命令=ansible webservers -m shell -a 'ls -l /tmp/'
来,运行一把看看结果:
Ansible之模块参数(二)

一模一样,有木有。

所以,复习一下模块参数:

  1. -m这个是必须要有的,如果没有,默认是用的shell这个模块,这个时候-a后面一定是跟的shell命令的参数,否则的话会出错的。
  2. -a这个是必须要有的,不管-m这个有没有,参考第1条。这个-a后面参数的格式,是要根据-m你所用到的模块名来写的。

那下一篇,我们就介绍如何查看模块-a的使用说明。

猜你喜欢

转载自blog.51cto.com/jiaszwx/2412129