command 模块在远程主机上执行命令。使用 command 模块在远程主机中执行命令时,不会经过远程主机的 shell 处理,在使用 command 模块时,如果需要执行的命令中含有重定向、管道符等操作时,这些符号也会失效,比如”<”, “>”, “|”, “;” 和 “&” 这些符号,如果你需要这些功能,可以参考后面介绍的 shell 模块。如果远程节点是 windows 操作系统,则需要使用 win_command 模块。
执行 ansible 时,不加 -m 默认使用 command ,可以在 /etc/ansible/ansible.cfg 中修改。
# default module name for /usr/bin/ansible
#module_name = command
一、常用参数
free_form:required,指定需要远程执行的命令。在远程主机上执行 ls 命令时,并不需要写成”free_form=ls” ,这样写是错误的,因为并没有任何参数的名字是 free_form,直接写成 ls 即可。
chdir: 指定一个工作目录,在执行对应的命令之前,会先进入到 chdir 参数指定的目录中。
creates:当指定的文件存在时,就不执行对应命令。
removes:与 creates 参数的作用正好相反。
二、示例
[root@ansible-manager ~]# ansible ansible-demo3 -m command -a "ls"
[root@ansible-manager ~]# ansible ansible-demo3 -m command -a "chdir=/testdir ls"
[root@ansible-manager ~]# ansible ansible-demo3 -m command -a "creates=/testdir/testfile1 echo test"
[root@ansible-manager ~]# ansible ansible-demo3 -m command -a "creates=/testdir/testfile3 echo test"
[root@ansible-manager ~]# ansible ansible-demo3 -m command -a "removes=/testdir/testfile1 echo test"
[root@ansible-manager ~]# ansible ansible-demo3 -m command -a "removes=/testdir/testfile3 echo test"
————Blueicex 2020/2/2 18:40 [email protected]