ansible远程执行命令和拷贝目录或者文件

一:远程执行命令 语法:ansible 【group\ip\host】  -m【模块】-a 【命令】 示列: ansible 192.168.2.252 -m command -a 'w'     1.使用远程执行命令前需要修改ansible配置,添加testhosts组,添加对应的远程Ip [root@ghs ~]# vim /etc/ansible/hosts [testhosts] 127.0.0.1 192.168.2.252     2:远程执行w命令查看127.0.0.1和192.168.2.252的状态,以ip地址形式执行 [root@ghs ~]# ansible 192.168.2.252 -m command -a 'w' 192.168.2.252 | SUCCESS | rc=0 >>  08:21:03 up  3:05,  5 users,  load average: 0.01, 0.03, 0.05 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT root     tty1     -                05:16    3:03m  0.09s  0.09s -bash root     pts/0    192.168.2.108    06:10    1:12m  0.46s  0.18s bash root     pts/1    192.168.2.251    07:43   37:29   0.04s  0.04s -bash root     pts/2    192.168.2.108    08:13    8:00   0.15s  0.15s -bash root     pts/3    192.168.2.251    08:21    0.00s  0.35s  0.01s /bin/sh -c /usr   或者以定义的组执行 [root@ghs ~]# ansible testhosts -m command -a 'w' 192.168.2.252 | SUCCESS | rc=0 >>  08:21:03 up  3:05,  5 users,  load average: 0.01, 0.03, 0.05 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT root     tty1     -                05:16    3:03m  0.09s  0.09s -bash root     pts/0    192.168.2.108    06:10    1:12m  0.46s  0.18s bash root     pts/1    192.168.2.251    07:43   37:29   0.04s  0.04s -bash root     pts/2    192.168.2.108    08:13    8:00   0.15s  0.15s -bash root     pts/3    192.168.2.251    08:21    0.00s  0.35s  0.01s /bin/sh -c /usr   127.0.0.1 | SUCCESS | rc=0 >>  22:14:29 up 15:33,  7 users,  load average: 0.01, 0.05, 0.05 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT root     tty1     -                06:42   15:15m  0.11s  0.11s -bash root     pts/0    192.168.2.108    19:13   37:35   0.48s  0.07s ssh root@192.16 root     pts/1    192.168.2.108    22:06    3.00s  0.44s  0.28s ssh 127.0.0.1 root     pts/2    localhost        22:06    3.00s  0.29s  0.21s ssh 127.0.0.1 root     pts/3    localhost        22:07    3.00s  0.20s  0.04s ssh 127.0.0.1 root     pts/4    localhost        22:14    3.00s  1.14s  0.89s /usr/bin/python root     pts/7    localhost        22:14    1.00s  0.89s  0.00s /bin/sh -c /usr     3:command模块是不支持|管道符的会报错 [root@ghs ~]# ansible testhosts -m command -a 'cat /etc/passwd|grep root' 192.168.2.252 | FAILED | rc=1 >> cat: /etc/passwd|grep: 没有那个文件或目录 cat: root: 没有那个文件或目录   127.0.0.1 | FAILED | rc=1 >> cat: /etc/passwd|grep: 没有那个文件或目录 cat: root: 没有那个文件或目录   使用管道符号需要调用shell模块 [root@ghs ~]# ansible testhosts -m shell -a 'cat /etc/passwd|grep root' 192.168.2.252 | SUCCESS | rc=0 >> root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin   127.0.0.1 | SUCCESS | rc=0 >> root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin       二:拷贝目录和文件copy模板 src:【source】【Route】 dest:【target】【Route】 拷贝的目标路径如果目录存在,会在目标目录下创建,如果不存在,直接创建目标的目录名   host1 :192.168.2.251 1:拷贝目录 将本机的/etc/ansible文件夹拷贝到远程上的/tmp/ [root@ghs ~]# ansible 192.168.2.252 -m copy -a "src=/etc/ansible dest=/tmp/ owner=root group=root mode=0755" 192.168.2.252 | SUCCESS => {     "changed": true,     "dest": "/tmp/",     "src": "/etc/ansible" }   host2:192.168.2.252 查看tmp目录下是否有ansible目录 [root@ghs2 ~]# ls /tmp/ansible/ ansible.cfg  hosts     host1 :192.168.2.251 2:拷贝文件 拷贝本机的/etc/passwd到远程机上的/tmp目录下 [root@ghs ~]# ansible 192.168.2.252 -m copy -a "src=/etc/passwd dest=/tmp/1.txt " 192.168.2.252 | SUCCESS => {     "changed": true,     "checksum": "bb5f5e7ec89beebcd7dc7fe5d188ccfd4ded3ac5",     "dest": "/tmp/1.txt",     "gid": 0,     "group": "root",     "md5sum": "17f24152f467a0e80b9b4aa96af47ece",     "mode": "0644",     "owner": "root",     "secontext": "unconfined_u:object_r:admin_home_t:s0",     "size": 902,     "src": "/root/.ansible/tmp/ansible-tmp-1500738575.79-49230594941144/source",     "state": "file",     "uid": 0 }   host1 :192.168.2.251 查看是否有/tmp/1.txt文件 [root@ghs2 ~]# ls /tmp/ 1.txt  aa  ansible  yum.log
上一篇:linux进程管理之信号控制


下一篇:screen重新连接会话