ansible常用模块使用详解
文章目录
ansible常用模块有:
-
ping
-
yum
-
template
-
copy
-
user
-
group
-
service
-
raw
-
command
-
shell
-
script
ansible常用模块raw
、command
、shell
的区别: -
shell模块调用的/bin/sh指令执行
-
command模块不是调用的shell的指令,所以没有bash的环境变量
-
raw很多地方和shell类似,更多的地方建议使用shell和command模块。但是如果是使用老版本python,需要用到raw,又或者是客户端是路由器,因为没有安装python模块,那就需要使用raw模块了
ansible常用模块之ping
ping模块用于检查指定节点机器是否连通,用法很简单,不涉及参数,主机如果在线,则回复pong
[root@Y ~]# ansible all -m ping
192.168.182.136 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
ansible常用模块之command
command模块用于在远程主机上执行命令,ansible默认就是使用command模块。
command模块有一个缺陷就是不能使用管道符和重定向功能。
查看受控主机的/tmp目录内容
[root@Y ~]# ansible all -a 'ls /tmp'
192.168.182.136 | CHANGED | rc=0 >>
ansible_command_payload_dNlJjE
ks-script-q0pEkO
vmware-root
yum.log
在受控主机的/tmp目录下新建一个文件zhuzhu
[root@Y ~]# ansible all -a 'touch /tmp/zhuzhu'
[WARNING]: Consider using the file module with state=touch rather than running 'touch'. 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.182.136 | CHANGED | rc=0 >>
[root@Y ~]# ansible all -a 'ls /tmp'
192.168.182.136 | CHANGED | rc=0 >>
ansible_command_payload_RylLzY
ks-script-q0pEkO
vmware-root
yum.log
zhuzhu
command模块不支持管道符,不支持重定向
[root@Y ~]# ansible all -a "echo 'zhuyi' >/tmp/zhuzhu"
192.168.182.136 | CHANGED | rc=0 >>
zhuyi >/tmp/zhuzhu
[root@Y ~]# ansible all -a 'ls /tmp/zhuzhu'
192.168.182.136 | CHANGED | rc=0 >>
/tmp/zhuzhu
[root@Y ~]# ansible all -a 'ps -ef|grep vsftpd'
192.168.182.136 | FAILED | rc=1 >>
error: unsupported SysV option
Usage:
ps [options]
Try 'ps --help <simple|list|output|threads|misc|all>'
or 'ps --help <s|l|o|t|m|a>'
for additional help text.
For more details see ps(1).non-zero return code
ansible常用模块之raw
raw模块用于在远程主机上执行命令,其支持管道符与重定向
支持重定向
[root@Y ~]# ansible all -m raw -a "echo 'zhuyi' >/tmp/zhuzhu"
192.168.182.136 | CHANGED | rc=0 >>
Shared connection to 192.168.182.136 closed.
[root@Y ~]# ansible all -a 'cat /tmp/zhuzhu'
192.168.182.136 | CHANGED | rc=0 >>
zhuyi
支持管道符
[root@Y ~]# ansible all -m raw -a 'cat /tmp/zhuzhu|grep zhuyi'