ping模块
[root@S01 ~]# ansible all -m ping
192.168.137.129 | SUCCESS => {
"changed": false,
"ping": "pong"
}
command 模块
[root@S01 ~]# ansible web -m command -a 'chdir=/tmp ls'
192.168.137.129 | SUCCESS | rc=0 >>
1.txt
ansible_Q70Y4Z
copy模块
[root@S01 ~]# ansible web -m copy -a "src=/shell/age.sh dest=/tmp"
192.168.137.129 | SUCCESS => {
"changed": true,
"checksum": "d5bd635509e72249356b49592e0dce27cbef3651",
"dest": "/tmp/age.sh",
"gid": 0,
"group": "root",
"md5sum": "40e866633434127016bf49c968c4661f",
"mode": "0644",
"owner": "root",
"size": 75,
"src": "/root/.ansible/tmp/ansible-tmp-1525714889.35-154761909372133/source",
"state": "file",
"uid": 0
}
[root@S01 ~]# ansible web -m copy -a "content='hello' dest=/tmp/1.txt mode=222 backup=yes" (content 相当于src内容 mode:权限 backup:是否备份)
192.168.137.129 | SUCCESS => {
"backup_file": "/tmp/1.txt.3534.2018-05-08@00:41:49~",
"changed": true,
"checksum": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d",
"dest": "/tmp/1.txt",
"gid": 0,
"group": "root",
"md5sum": "5d41402abc4b2a76b9719d911017c592",
"mode": "0222",
"owner": "root",
"size": 5,
"src": "/root/.ansible/tmp/ansible-tmp-1525715328.28-92472994702448/source",
"state": "file",
"uid": 0
}
file模块
设置文件属性
创建目录:-a "path= state=directory"
[root@S01 ~]# ansible web -m file -a "path=/tmp/yang state=directory"
192.168.137.129 | SUCCESS => {
"changed": true,
"gid": 0,
"group": "root",
"mode": "0755",
"owner": "root",
"path": "/tmp/yang",
"size": 6,
"state": "directory",
"uid": 0
}
fetch模块
从远程某主机获取文件到本地:
dest:用来存放文件的目录,例如存放目录为backup,源文件名称为/etc/profile
在主机pythonserver中,那么保存为/backup/pythonserver/etc/profile
Src:在远程拉取的文件,并且必须是一个file,不能是目录
注意:从远程获取到本地的文件,会保存到以远程主机的IP 为名的目录中,且保存目录结构
分析:拉取远程的/tmp/2.txt 文件,保存到本地的/shell/ 目录下
[root@S01 ~]# ansible web -m fetch -a "src=/tmp/2.txt dest=/shell/"
192.168.137.129 | SUCCESS => {
"changed": true,
"checksum": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d",
"dest": "/shell/192.168.137.129/tmp/2.txt",
"md5sum": "5d41402abc4b2a76b9719d911017c592",
"remote_checksum": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d",
"remote_md5sum": null
}
cron模块
在远程主机上,定义每5分钟,清空一次防火墙
[root@S01 ~]# ansible web -m cron -a "name='clear the iptable' minute=*/5 job='/sbin/iptalbes -F'"
192.168.137.129 | SUCCESS => {
"changed": true,
"envs": [],
"jobs": [
"clear the iptable"
]
}
[root@S01 ~]# ansible web -m shell -a "crontab -l"
192.168.137.129 | SUCCESS | rc=0 >>
#Ansible: clear the iptable
*/5 * * * * /sbin/iptalbes -F