command 模块是Ansible默认执行模块,在远程主机执行 shell 指令

参数 必填 默认值 注解
chdir no 在运行命令前 cd 到这个目录中,相当于 cd xxx && command
creates no 当文件存在时,该任务跳过不执行
removes no 当文件不存在时,该任务才执行

Ansible技术问答:http://linux.xyz/topic/Ansible

示例:

# 关闭系统
-command: /sbin/shutdown -t now

# 当指定的文件存在时,跳过不执行该命令
-command: /usr/bin/make_database.sh arg1 arg2 creates=/path/to/database

# 当指定不文件存在时,则该命令将会执行
-command: /usr/bin/make_database.sh arg1 arg2 creates=/path/to/database

注:这个模块不支持管道和重定向,要支持管道可以用-m shell 或者-m rawshellraw 语法一样,它们支持管道和重定向,如:

- shell: ifconfig|grep inet|grep -Ev '127.'|cut -d':' -f2|cut -d' ' -f1

- raw: ifconfig|grep inet|grep -Ev '127.'|cut -d':' -f2|cut -d' ' -f1 > /tmp/ip.log