(三)Ansible-命令模块

命令模块:

  • command
  • script
  • shell

一 、command

注意:使用command模块在远程主机中执行命令时,不会经过远程主机的shell处理,在使用command模块时,如果需要执行的命令中含有重定向、管道符等操作时,这些符号也会失效,比如<, >, |, ; 和 & 这些符号,如果你需要这些功能,可以参考后面介绍的shell模块,还有一点需要注意,如果远程节点是windows操作系统,则需要使用win_command模块。

  • free_form参数 :必须参数,指定需要远程执行的命令,需要说明一点,free_form参数与其他参数并不相同,free_form并不是一个”实际存在”的参数名,比如,当我们想要在远程主机上执行ls命令时,我们并不需要写成free_form=ls ,这样写反而是错误的,因为并没有任何参数的名字是free_form,当我们想要在远程主机中执行ls命令时,直接写成ls即可,这就是free_form参数的含义,因为command模块的作用是执行命令,所以,任何一个可以在远程主机上执行的命令都可以被称为free_form。
  • chdir参数 : 此参数的作用就是指定一个目录,在执行对应的命令之前,会先进入到chdir参数指定的目录中。
  • creates参数 :它的作用是当指定的文件存在时,就不执行对应命令,比如,如果/testdir/test文件存在,就不执行我们指定的命令;
  • removes参数 :与creates参数的作用正好相反,它的作用是当指定的文件不存在时,就不执行对应命令。

1、command命令示例

在这里插入图片描述

2、command命令示例 不加参数-m

如果不添加-m参数,默认使用command模块:
在这里插入图片描述

3、command命令示例 chdir

在这里插入图片描述

4、command命令示例 creates

对应路径下并不存在指定文件,所以执行该指定的命令
在这里插入图片描述

5、command命令示例 removes

在指定主机的指定路径下创建相应的文件,再次执行该参数的命令:
在这里插入图片描述

二、shell

command模块是Ansible的默认模块,使用比较简单,但是command模块的命令执行不是通过shell执行的,这就导致了带有">","<","&“和”|"等特殊符号不能使用。因此,我们不能使用command模块进行输入输出重定向,也不能使用command模块一次性的执行多个命令。
shell模块可以帮助我们在远程主机上执行命令,与command模块不同的是,shell模块在远程主机中执行命令时,会经过远程主机上的/bin/sh程序处理。

  • free_form参数 :同上
  • chdir参数 : 同上
  • creates参数 :同上
  • removes参数 :同上
  • executable参数:默认情况下,shell模块会调用远程主机中的/bin/sh去执行对应的命令,通常情况下,远程主机中的默认shell都是bash,如果你想要使用其他类型的shell执行命令,则可以使用此参数指定某种类型的shell去执行对应的命令,指定shell文件时,需要使用绝对路径。
    shell模块中chdir、creates、removes参数的作用与command模块中的作用都是相同的。仅作如下举例:

1、command命令示例 带特殊字符

在这里插入图片描述
遇到上述情况,可通过shell模块进行实现:

2、shell命令示例 带特殊字符

1、执行命令
在这里插入图片描述
2、查看重定向的目标文件
在这里插入图片描述

3、shell命令示例 指定shell类型

在这里插入图片描述

三、script

执行的命令过多,shell模块在使用上还是不方便。这时,我们直观的考虑是将我们想要执行的命令写成脚本,然后想办法将该脚本复制到客户端上去,然后控制客户端执行。但是,其实Ansible自带有script模块,可以帮助我们实现上述过程。
下面,我们尝试使用Ansible的script模块。在/root目录下,创建一个test.sh的脚本文件,在脚本文件中写入如下内容:

相应的参数同上
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IForFree

整理不易,望多支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值