Ansible的command模块是一个非常简单的模块,用于在远程主机上执行命令。
在使用command模块时,您需要指定要执行的命令,并且这个命令将直接在远程主机上运行,不会经过远程主机的shell处理。所以command模块不支持特殊符号,不认识重定向,这意味着,如果您的命令中含有重定向、管道符等操作,这些符号也会失效。
命令格式:ansible 主机组名 -m 模块名 -a 批量执行的操作
- 查看web组内所有机器的hostname
ansible web -m command -a "hostname"
ansible web -a "hostname"
- 创建文件,warn=false忽略警告
ansible all -m command -a "touch /home/a.log"
ansible all -m command -a "touch /home/a.log warn=false"
- 查看文件
ansible all -m command -a "cat /home/a.log"
- 创建用户
ansible all -m command -a “useradd test01”
- 进入/目录后再操作
ansible web -m command -a "tar -zcf /opt/log.tgz /var/log chdir=/"
#进入/目录后再操作,先检查文件夹/opt12是否存在,如果不存在则跳过执行
ansible web -m command -a "tar -zcf /opt12/log.tgz /var/log chdir=/ removes=/opt12"
#参数说明:
chdir=/home 在执行命令执行,通过cd命令进入指定目录
creates=/home 定义一个文件是否存在,若不存在,则运行相应命令;存在则跳过
removes=/home 定义一个文件是否存在,如果存在,则运行相应命令;如果不存在则跳过