2.常用模块

常用模块
1.copy模块
    目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上
[root@localhost ~]# ansible web -m copy -a 'src=/root/ansible-master dest=/tmp/'
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709", 
    "dest": "/tmp/ansible-master", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "d41d8cd98f00b204e9800998ecf8427e", 
    "mode": "0644", 
    "owner": "root", 
    "size": 0, 
    "src": "/root/.ansible/tmp/ansible-tmp-1501666699.41-133742932037676/source", 
    "state": "file", 
    "uid": 0
}
[root@localhost ~]# ansible web -m command -a 'ls -l /tmp/ansible-master'
192.168.222.129 | SUCCESS | rc=0 >>
-rw-r--r-- 1 root root 0 Aug  2 17:38 /tmp/ansible-master

2.file模块:
    目的:更改指定节点上/tmp/t.sh的权限为755,属主和属组为root
[root@localhost ~]# ansible web -m file -a 'dest=/tmp/ansible-master mode=755 owner=root group=root'
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "gid": 0, 
    "group": "root", 
    "mode": "0755", 
    "owner": "root", 
    "path": "/tmp/ansible-master", 
    "size": 0, 
    "state": "file", 
    "uid": 0
}
[root@localhost ~]# ansible web -m command -a 'ls -l /tmp/ansible-master'
192.168.222.129 | SUCCESS | rc=0 >>
-rwxr-xr-x 1 root root 0 Aug  2 17:38 /tmp/ansible-master
[root@localhost ~]# ansible web -m file -a 'dest=/tmp/ansible-master mode=755 owner=test group=test'
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "gid": 500, 
    "group": "test", 
    "mode": "0755", 
    "owner": "test", 
    "path": "/tmp/ansible-master", 
    "size": 0, 
    "state": "file", 
    "uid": 500
}
[root@localhost ~]# ansible web -m command -a 'ls -l /tmp/ansible-master'
192.168.222.129 | SUCCESS | rc=0 >>
-rwxr-xr-x 1 test test 0 Aug  2 17:38 /tmp/ansible-master

3.cron模块
 目的:在指定节点上定义一个计划任务,每隔3分钟到windows时间服务器更新一次时间
[root@localhost ~]# ansible web -m cron -a 'name="custom job" minute=*/3 hour=* month=* weekday=* job="/usr/sbin/ntpdate time.windows.com"' 
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "envs": [], 
    "jobs": [
        "custom job"
    ]
}
[root@localhost ~]# ansible web -m command -a 'crontab -l'
192.168.222.129 | SUCCESS | rc=0 >>
#Ansible: custom job
*/3 * * * * /usr/sbin/ntpdate time.windows.com

4.group模块
目的:在所有节点上创建一个组名为linux,gid为2048的组
[root@localhost ~]# ansible web -m group -a 'gid=2048 name=linux' 
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "gid": 2048, 
    "name": "linux", 
    "state": "present", 
    "system": false
}


5.user模块
目的:在指定节点上创建一个用户名为linux,组为linux的用户
[root@localhost ~]# ansible web -m user -a 'name=linux group=linux state=present'
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "comment": "", 
    "createhome": true, 
    "group": 2048, 
    "home": "/home/linux", 
    "name": "linux", 
    "shell": "/bin/bash", 
    "state": "present", 
    "system": false, 
    "uid": 501
}
[root@localhost ~]# ansible web -m command -a 'id linux'
192.168.222.129 | SUCCESS | rc=0 >>
uid=501(linux) gid=2048(linux) groups=2048(linux)
删除用户
[root@localhost ~]# ansible web -m user -a 'name=linux state=absent remove=yes'
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "force": false, 
    "name": "linux", 
    "remove": true, 
    "state": "absent"
}
[root@localhost ~]# ansible web -m command -a 'id linux'
192.168.222.129 | FAILED | rc=1 >>
id: linux: No such user

6.yum模块
目的:在指定节点上安装 lrzsz 服务
[root@localhost ~]# ansible web -m yum -a 'state=present name=lrzsz'
192.168.222.129 | SUCCESS => {
    "changed": false, 
    "msg": "", 
    "rc": 0, 
    "results": [
        "lrzsz-0.12.20-27.1.el6.x86_64 providing lrzsz is already installed"
    ]
}

7.service模块
目的:启动指定节点上的 httpd服务,并让其开机自启动
[root@localhost ~]# ansible web -m service -a 'name=httpd state=restarted enabled=yes'
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "enabled": true, 
    "name": "httpd", 
    "state": "started"
}
[root@localhost ~]# ansible web -m command -a '/etc/init.d/httpd status'
192.168.222.129 | SUCCESS | rc=0 >>
httpd (pid  6680) is running...

[root@localhost ~]# ansible web -m raw -a 'chkconfig --list|grep httpd'
192.168.222.129 | SUCCESS | rc=0 >>
httpd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off


8.sctipt模块
 目的:在指定节点上执行/root/a.sh脚本(该脚本是在ansible控制节点上的)
[root@localhost ~]# ansible web -m script -a '/root/a.sh'
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "rc": 0, 
    "stderr": "Shared connection to 192.168.222.129 closed.\r\n", 
    "stdout": "salt\r\n", 
    "stdout_lines": [
        "salt"
    ]
}

9.ping模块
目的:检查指定节点机器是否还能连通
[root@localhost ~]# ansible web -m ping
192.168.222.129 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

10.command模块
目的:在指定节点上运行hostname命令
[root@localhost ~]# ansible web -m command -a 'hostname'
192.168.222.129 | SUCCESS | rc=0 >>
salt
注意不能使用含有|的符号

11.raw模块
目的:在web角色的所有节点上运行hostname命令
[root@localhost ~]# ansible web -m raw -a 'hostname|tee'
192.168.222.129 | SUCCESS | rc=0 >>
salt
Shared connection to 192.168.222.129 closed.
注意可以包含|符号

12.get_url模块
目的:将http://releases.ansible.com/ansible/ansible-latest.tar.gz文件下载到指定节点的/tmp目录下
[root@localhost ~]# ansible web -m get_url -a 'url=http://releases.ansible.com/ansible/ansible-latest.tar.gz dest=/tmp/'
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "checksum_dest": null, 
    "checksum_src": "7c5aa4e8908a0110904f3886000172cbb81c98a4", 
    "dest": "/tmp/ansible-latest.tar.gz", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "b1be8f05864a07c06b8a767dcd48ba1b", 
    "mode": "0644", 
    "msg": "OK (4263357 bytes)", 
    "owner": "root", 
    "size": 4263357, 
    "src": "/tmp/tmpQ5UQe6", 
    "state": "file", 
    "status_code": 200, 
    "uid": 0, 
    "url": "http://releases.ansible.com/ansible/ansible-latest.tar.gz"
}
[root@localhost ~]# ansible web -m command -a 'ls -l /tmp/ansible-latest.tar.gz'
192.168.222.129 | SUCCESS | rc=0 >>
-rw-r--r-- 1 root root 4263357 Aug  2 18:07 /tmp/ansible-latest.tar.gz


13.synchronize模块
目的:将主控方/root/a目录推送到指定节点的/tmp目录下
[root@localhost ~]# ansible web -m synchronize -a 'src=/root/a dest=/tmp/ compress=yes'
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh=/usr/bin/ssh -S none -i /root/.ssh/id_rsa -o Port=22 -o StrictHostKeyChecking=no --out-format=<<CHANGED>>%i %n%L /root/a 192.168.222.129:/tmp/", 
    "msg": "cd+++++++++ a/\n<f+++++++++ a/1.png\n<f+++++++++ a/1.txt\n<f+++++++++ a/10.png\n<f+++++++++ a/10.txt\n<f+++++++++ a/2.png\n<f+++++++++ a/2.txt\n<f+++++++++ a/3.png\n<f+++++++++ a/3.txt\n<f+++++++++ a/4.png\n<f+++++++++ a/4.txt\n<f+++++++++ a/5.png\n<f+++++++++ a/5.txt\n<f+++++++++ a/6.png\n<f+++++++++ a/6.txt\n<f+++++++++ a/7.png\n<f+++++++++ a/7.txt\n<f+++++++++ a/8.png\n<f+++++++++ a/8.txt\n<f+++++++++ a/9.png\n<f+++++++++ a/9.txt\n", 
    "rc": 0, 
    "stdout_lines": [
        "cd+++++++++ a/", 
        "<f+++++++++ a/1.png", 
        "<f+++++++++ a/1.txt", 
        "<f+++++++++ a/10.png", 
        "<f+++++++++ a/10.txt", 
        "<f+++++++++ a/2.png", 
        "<f+++++++++ a/2.txt", 
        "<f+++++++++ a/3.png", 
        "<f+++++++++ a/3.txt", 
        "<f+++++++++ a/4.png", 
        "<f+++++++++ a/4.txt", 
        "<f+++++++++ a/5.png", 
        "<f+++++++++ a/5.txt", 
        "<f+++++++++ a/6.png", 
        "<f+++++++++ a/6.txt", 
        "<f+++++++++ a/7.png", 
        "<f+++++++++ a/7.txt", 
        "<f+++++++++ a/8.png", 
        "<f+++++++++ a/8.txt", 
        "<f+++++++++ a/9.png", 
        "<f+++++++++ a/9.txt"
    ]
}
[root@localhost ~]# ansible web -m command -a 'ls -l /tmp/a'
192.168.222.129 | SUCCESS | rc=0 >>
total 0
-rw-r--r-- 1 root root 0 Aug  2 18:09 10.png
-rw-r--r-- 1 root root 0 Aug  2 18:09 10.txt
-rw-r--r-- 1 root root 0 Aug  2 18:09 1.png
-rw-r--r-- 1 root root 0 Aug  2 18:09 1.txt
-rw-r--r-- 1 root root 0 Aug  2 18:09 2.png
-rw-r--r-- 1 root root 0 Aug  2 18:09 2.txt
-rw-r--r-- 1 root root 0 Aug  2 18:09 3.png
-rw-r--r-- 1 root root 0 Aug  2 18:09 3.txt
-rw-r--r-- 1 root root 0 Aug  2 18:09 4.png
-rw-r--r-- 1 root root 0 Aug  2 18:09 4.txt
-rw-r--r-- 1 root root 0 Aug  2 18:09 5.png
-rw-r--r-- 1 root root 0 Aug  2 18:09 5.txt
-rw-r--r-- 1 root root 0 Aug  2 18:09 6.png
-rw-r--r-- 1 root root 0 Aug  2 18:09 6.txt
-rw-r--r-- 1 root root 0 Aug  2 18:09 7.png
-rw-r--r-- 1 root root 0 Aug  2 18:09 7.txt
-rw-r--r-- 1 root root 0 Aug  2 18:09 8.png
-rw-r--r-- 1 root root 0 Aug  2 18:09 8.txt
-rw-r--r-- 1 root root 0 Aug  2 18:09 9.png
-rw-r--r-- 1 root root 0 Aug  2 18:09 9.txt

compress=yes  开启压缩,默认为开启
delete=yes   使两边的内容一样(即以推送方为主)
mode=push 默认推送过去可以修改为pull模式从客户端拉取过来
[root@localhost ~]# ansible web -m synchronize -a 'src=/root/a dest=/tmp/ compress=yes delete=yes'
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "cmd": "/usr/bin/rsync --delay-updates -F --compress --delete-after --archive --rsh=/usr/bin/ssh -S none -i /root/.ssh/id_rsa -o Port=22 -o StrictHostKeyChecking=no --out-format=<<CHANGED>>%i %n%L /root/a 192.168.222.129:/tmp/", 
    "msg": ".d..t...... a/\n*deleting   a/9.png\n*deleting   a/8.png\n*deleting   a/7.png\n*deleting   a/6.png\n*deleting   a/5.png\n*deleting   a/4.png\n*deleting   a/3.png\n*deleting   a/2.png\n*deleting   a/10.png\n*deleting   a/1.png\n", 
    "rc": 0, 
    "stdout_lines": [
        ".d..t...... a/", 
        "*deleting   a/9.png", 
        "*deleting   a/8.png", 
        "*deleting   a/7.png", 
        "*deleting   a/6.png", 
        "*deleting   a/5.png", 
        "*deleting   a/4.png", 
        "*deleting   a/3.png", 
        "*deleting   a/2.png", 
        "*deleting   a/10.png", 
        "*deleting   a/1.png"
    ]
}
目录下的子目录也是可以同步过去的
[root@localhost ~]# ansible web -m synchronize -a 'src=/root/a dest=/tmp/ compress=yes delete=yes'
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "cmd": "/usr/bin/rsync --delay-updates -F --compress --delete-after --archive --rsh=/usr/bin/ssh -S none -i /root/.ssh/id_rsa -o Port=22 -o StrictHostKeyChecking=no --out-format=<<CHANGED>>%i %n%L /root/a 192.168.222.129:/tmp/", 
    "msg": ".d..t...... a/\ncd+++++++++ a/b/\ncd+++++++++ a/b/c/\ncd+++++++++ a/b/c/d/\n", 
    "rc": 0, 
    "stdout_lines": [
        ".d..t...... a/", 
        "cd+++++++++ a/b/", 
        "cd+++++++++ a/b/c/", 
        "cd+++++++++ a/b/c/d/"
    ]
}
从客户端拉取到主控端
[root@localhost ~]# ansible web -m synchronize -a 'src=/tmp/a dest=/tmp/ compress=yes delete=yes mode=pull'
192.168.222.129 | SUCCESS => {
    "changed": true, 
    "cmd": "/usr/bin/rsync --delay-updates -F --compress --delete-after --archive --rsh=/usr/bin/ssh -S none -i /root/.ssh/id_rsa -o Port=22 -o StrictHostKeyChecking=no --out-format=<<CHANGED>>%i %n%L 192.168.222.129:/tmp/a /tmp/", 
    "msg": "cd+++++++++ a/\n>f+++++++++ a/1.txt\n>f+++++++++ a/10.txt\n>f+++++++++ a/2.txt\n>f+++++++++ a/3.txt\n>f+++++++++ a/4.txt\n>f+++++++++ a/5.txt\n>f+++++++++ a/6.txt\n>f+++++++++ a/7.txt\n>f+++++++++ a/8.txt\n>f+++++++++ a/9.txt\ncd+++++++++ a/b/\ncd+++++++++ a/b/c/\ncd+++++++++ a/b/c/d/\n", 
    "rc": 0, 
    "stdout_lines": [
        "cd+++++++++ a/", 
        ">f+++++++++ a/1.txt", 
        ">f+++++++++ a/10.txt", 
        ">f+++++++++ a/2.txt", 
        ">f+++++++++ a/3.txt", 
        ">f+++++++++ a/4.txt", 
        ">f+++++++++ a/5.txt", 
        ">f+++++++++ a/6.txt", 
        ">f+++++++++ a/7.txt", 
        ">f+++++++++ a/8.txt", 
        ">f+++++++++ a/9.txt", 
        "cd+++++++++ a/b/", 
        "cd+++++++++ a/b/c/", 
        "cd+++++++++ a/b/c/d/"
    ]
}




 

转载于:https://my.oschina.net/eddylinux/blog/1499770

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值