ansible的常用模块
ansible常用模块有:
ping
yum
template
copy
user
group
service
raw
command
shell
script
ping
主机如果在线,则回复pong
[root@localhost ~]# ansible all -m ping
192.168.111.142 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
command
command模块用于在远程主机上执行命令,ansible默认就是使用command模块。
command模块有一个缺陷就是不能使用管道符和重定向功能。
查看受控主机的家目录
[root@localhost ansible]# ansible all -m command -a 'hostname'
192.168.111.142 | CHANGED | rc=0 >>
localhost.localdomain
[root@localhost ansible]# ansible all -m command -a 'hostname' -o
192.168.111.142 | CHANGED | rc=0 | (stdout) localhost.localdomain
不能用管道符和重定向
[root@localhost ansible]# ansible all -m command -a "df -h|awk '{print $4}'"
192.168.111.142 | FAILED | rc=1 >>
df:无效选项 -- |
Try 'df --help' for more information.non-zero return code
shell
shell模块用于在受控机上执行受控机上的脚本,也可直接在受控机上执行命令。shell模块支持管道与重定向。
查看受控主机的家目录
[root@localhost ansible]# ansible all -m shell -a 'hostname'
192.168.111.142 | CHANGED | rc=0 >>
localhost.localdomain
[root@localhost ansible]# ansible all -m shell -a "df -h|awk '{print $4}'"
192.168.111.142 | CHANGED | rc=0 >>
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.7G 16G 10% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sdb1 1014M 33M 982M 4% /media
/dev/sda1 1014M 130M 885M 13% /boot
/dev/sdb5 93M 1.6M 85M 2% /mnt
tmpfs 98M 0 98M 0% /run/user/0
[root@localhost ~]# vim test.sh
[root@localhost ~]# chmod +x test.sh
[root@localhost ~]# ll
-rwxr-xr-x. 1 root root 25 7月 17 17:53 test.sh
[root@localhost ~]# cat test.sh
#!/bin/bash
echo "hehe"
[root@localhost ansible]# ansible all -m shell -a '/bin/bash /root/test.sh &> /tmp/test.log'
192.168.111.142 | CHANGED | rc=0 >>
[root@localhost ~]# ls /tmp/
abc
systemd-private-4ece19a832bd4ecd820bab8b3d2c5398-chronyd.service-A8POzz
systemd-private-5ce3f8ca0f11461a84c634200dbb185d-chronyd.service-9Q39uF
systemd-private-9e048261b1bf45d7bf339b9de9a1b9dc-chronyd.service-JsCiQC
systemd-private-bb2d23be42b7476d881d8fd0516cfe20-chronyd.service-hzXLiw
systemd-private-d3345e8f326a407b9d7dfec38dde3c4e-chronyd.service-PnwINY
test.log
[root@localhost ~]# cat /tmp/test.log
hehe
[root@localhost ~]# /bin/bash /root/test.sh
hehe
raw
raw模块用于在远程主机上执行命令,其支持管道符与重定向
[root@localhost ansible]# ansible all -m raw -a 'hostname'
192.168.111.142 | CHANGED | rc=0 >