command模块
作用:在远程节点上执行一个命令
ansible-doc -s command 查看该模块支持的参数
chdir 在执行命令之前,先通过cd进入该参数指定的目录
creates 在创建一个文件之前,判断该文件是否存在,如果存在了则跳过前面的东西,如果不存在则执行前面的动作
free_from 该参数可以输入任何的系统命令,实现远程执行和管理
removes 删除文件,先判断一个文件是否存在,如果存在则执行前面的动作,如果不存在则跳过动作
command模块是ansible默认基本模块,也可以省略不写,但是要注意如下的坑
使用command模块,不得出现shell变量$name,也不得出现特殊符号 > < | ; & 这些符号 command 模块都不认识,如果你想用前面指定的变量,特殊符号,请使用 shell 模块,command模块不适合
command模块案例
获取所有被管理机器的负载信息
ansible yu -m command -a "uptime"
让客户端机器,先切换到/tmp目录下,然后打印当前的工作目录。不指定目录默认在/root目录下
ansible yu -m command -a "pwd chdir=/tmp/"
creates参数
该参数作用是判断该文件是否存在,存在则跳过,不存在则执行
ansible 192.168.178.121 -m command -a "pwd creates=/my_rsync"
[root@yuweijie mysh]# ansible 192.168.178.121 -m command -a "pwd creates=/my_rsync"
192.168.178.121 | SUCCESS | rc=0 >>
skipped, since /my_rsync exists
removes:存在则执行,不存在则跳过
ansible yu -a "ls /opt removes=/an_test"
ansible yu -a "ls /opt removes=/opt"
warn参数,是否提供报警信息
ansible yu -m command -a "chmod 000 /opt/ansible_test.txt" # 会出现警告信息
[root@yuweijie mysh]# ansible yu -m command -a "chmod 000 /opt/ansible_test.txt"
[WARNING]: Consider using the file module with mode rather than running 'chmod'. If you need to use command
because file is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False'
in ansible.cfg to get rid of this message.
192.168.178.122 | CHANGED | rc=0 >>
192.168.178.121 | CHANGED | rc=0 >>
ansible yu -m command -a "chmod 000 /etc/hosts warn=False"
[root@yuweijie mysh]# ansible yu -m command -a "chmod 000 /etc/hosts warn=False"
192.168.178.122 | CHANGED | rc=0 >>
192.168.178.121 | CHANGED | rc=0 >>
网友评论