一:ansible遠端執行命令
[root@ansible ~]# ansible test -m shell -a "date" 192.168.0.28 | SUCCESS | rc=0 >> 2016年 08月 02日 星期二 15:06:21 CST
[root@ansible ~]# ansible test -m raw -a "date"
192.168.0.28 | SUCCESS | rc=0 >>
2016年 08月 02日 星期二 15:06:21 CST
[root@ansible ~]# ansible test -m command -a "date"
192.168.0.28 | SUCCESS | rc=0 >>
2016年 08月 02日 星期二 15:08:06 CST
test為主機組名 -m後面跟模組名 -a後面跟命令 ,shell raw模組支援管道 command模組不支援
二:ansible拷貝檔案或目錄
[root@ansible ~]# ansible test -m copy -a "src=/data/shell/ dest=/data/shell/ " 192.168.0.28 | SUCCESS => { "changed": true, "dest": "/data/shell/", "src": "/data/shell" }
三:ansible遠端執行指令碼
首先建立一個shell指令碼
vim /tmp/test.sh //加入內容
#!/bin/bash
echo `date` > /tmp/ansible_test.txt
然後把該指令碼分發到各個機器上
ansible test -m copy -a "src=/tmp/test.sh dest=/tmp/test.sh mod=0755"
最後是批量執行該shell指令碼
ansible test -m shell -a "/tmp/test.sh"
shell模組,還支援遠端執行命令並且帶管道ansible test-m shell -a "cat /etc/passwd|wc -l "
四:ansible安裝rpm包/管理服務
[root@ansible ~]# ansible test -m yum -a "name=glances state=installed" //這裡的name是centos系統裡的服務名。 192.168.0.28 | SUCCESS => { "changed": true,
五:ansible 同步模組synchronize 使用
功能: 資料同步管理 使用此模組需要服務端與web組都安裝了rsync.
#ansible test -m shell -a "rpm -qa rsync" 檢查是否安裝了rsync
192.168.0.28 | SUCCESS | rc=0 >>
rsync-3.0.9-17.el7.x86_64
安裝rsync
#ansible test -m shell -a "yum install -y rsync"
同步目錄:
#ansible test -m synchronize -a "src=/data/adminshell/ dest=/data/adminshell/ "
同步目錄,刪除目的目錄中源目錄中沒有的檔案
#ansible test -m synchronize -a "src=/data/adminshell/ dest=/data/adminshell/ delete=yes"
"msg": "*deleting test.txt\n"
同步目錄,排除某個檔案
ansible test -m synchronize -a "src=/data/adminshell/ dest=/data/adminshell/ rsync_opts="--exclude=exclude.txt" "
同步目錄,排除多個檔案
ansible test -m synchronize -a "src=/data/adminshell/ dest=/data/adminshell/ rsync_opts="--exclude=\*.conf,--exclude=\*.html,--exclude=test1" "
#ansible-doc -s synchronize 模組用法
六:ping模組,檢測主機是否存活。
[root@ansible ~]# ansible test -m ping //如果ansible 後面跟all ,則表示檢測 hosts 檔案中所有的伺服器是否存活! 192.168.0.28 | SUCCESS => { "changed": false, "ping": "pong" }