作用:在远程机器上执行命令(复杂的命令) 了解模块用法的渠道:
- linux命令行里面通过 ansible-doc:ansible-doc -s shell
- ansible官网查看帮助信息 https://docs.ansible.com/ansible/latest/
shell模块支持的参数和解释
chdir 在执行命令之前,通过cd进入该参数指定的目录
creates 定义一个文件是否存在,如果存在则不执行该命令,如果不存在该文件,则执行shell命令
free_from 参数信息中可以输入任何的系统指令,实现远程管理
removes 定义一个文件是否存在,如果存在该文件,则执行命令,如果不存在,则跳过
shell模块案例
批量查询进程信息
ansible yu -m shell -a "ps -ef | grep rsync | grep -v grep"
ansible yu -m shell -a "ps -ef | grep vim | grep -v grep"
批量在客户端机器,创建写入文件信息
ansible yu -m shell -a "echo hello > /tmp/heihei.txt"
批量执行脚本
该需要执行的脚本,必须要求在客户端机器上存在,否则会报错文件不存在,这是shell模块的特点,是因为还有一个专门执行脚本的script模块
1、创建文件夹
2、创建sh脚本文件,还要写入脚本内容
3、赋予脚本可执行权限
4、执行脚本
5、忽略warning信息
最好所有的操作都是在管理机器上,进行批量操作
ansible yu -m shell -a "mkdir -p /server/myscripts/;echo 'hostname' > /server/myscripts/hostname.sh;chmod +x /server/myscripts/hostname.sh;bash /server/myscripts/hostname.sh warn=False"
网友评论