1 前言
Ansible是一款基于Python开发的自动化运维工具,集合puppet、cfengine、chef、func、fabric等众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能,本次主要介绍Ansible的shell模块和command模块的异同点,安装教程可以参照之前的Ansible环境搭建文章。
2 异同点
【shell模块】
(1)支持$HOME命令
shell模块支持$HOME、<、>、|、;、&等符号
支持$home
ansible x.x.x.x -m shell -a "echo ${HOME} >/home/1.txt"
查看1.txt文件
ansible x.x.x.x -m shell -a "cat /home/1.txt"
这里注意${HOME},HOME要大写,不能使用小写
(2)支持&&命令
通过ansible执行shell命令
ansible x.x.x.x -m shell -a "cd /home/disk && ls"
(3)支持|(管道符)命令
ansible可以执行如下命令:
ansible x.x.x.x -m shell -a "cd /home/disk |ping 127.0.0.1 -c 3"
(4)支持改变当前工作路径
ansible可以执行如下命令:
ansible x.x.x.x -m shell -a "echo '33'>2.txt chdir=/home/disk"
ansible x.x.x.x -m shell -a "cat /home/disk/2.txt"
(5)指定用bash运行命令
ansible命令执行如下:
ansible x.x.x.x -m shell -a "cat /home/1.txt executable=/bin/bash"
(6)检查文件是否存在再执行命令
ansible命令执行如下:
ansible x.x.x.x -m shell -a "echo 'aa' >> /home/disk/1.txt chdir=/home/disk creates=1.txt"
只有当/home/disk/1.txt不存在时,才执行命令
【command模块】
(1)执行单条命令
ansible执行单条命令:
ansible x.x.x.x -m command -a "ls"
command模块和shell模块都支持执行单条命令
(2)检查文件是否存在再执行命令
ansible命令执行如下:
ansible x.x.x.x -m command -a "echo 'aa' >> /home/disk/1.txt chdir=/home/disk creates=1.txt"
只有当/home/disk/1.txt不存在时,才执行命令
(3)不支持&&命令
ansible执行命令:
ansible x.x.x.x -m shell -a "cd /home/disk | pwd"
ansible x.x.x.x -m command -a "cd /home/disk | pwd"
(4)不支持|(管道符)命令
ansible执行命令:
ansible x.x.x.x -m shell -a "cd /home/disk && ls"
ansible x.x.x.x -m command -a "cd /home/disk && ls"
(5)不支持指定用bash运行命令
ansible执行命令:
ansible x.x.x.x -m shell -a "cd /home/disk && ls"
0
这里有个提示,ansible 2.4版本的executable不再支持command模块,未使用bash运行命令
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...