一.synchronize 模塊:node
有的時候須要你去同步一個目錄到本地或者遠程,copy固然也能夠,但會很是的慢,遠遠沒有synchronize模塊給力,它依賴於rsync去同步,下面簡單介紹一下:git
使用synchronize同步文件,其參數以下:web
archive: 歸檔,至關於同時開啓recursive(遞歸)、links、perms、times、owner、group、-D選項都爲yes ,默認該項爲開啓 checksum: 跳過檢測sum值,默認關閉 compress:是否開啓壓縮 copy_links:複製連接文件,默認爲no ,注意後面還有一個links參數 delete: 刪除不存在的文件,默認no dest:目錄路徑 dest_port:默認目錄主機上的端口 ,默認是22,走的ssh協議 dirs:傳速目錄不進行遞歸,默認爲no,即進行目錄遞歸 rsync_opts:rsync參數部分 set_remote_user:主要用於/etc/ansible/hosts中定義或默認使用的用戶與rsync使用的用戶不一樣的狀況 mode: push或pull 模塊,push模的話,通常用於從本機向遠程主機上傳文件,pull 模式用於從遠程主機上取文件 src=some/relative/path dest=/some/absolute/path rsync_path="sudo rsync" src=some/relative/path dest=/some/absolute/path archive=no links=yes src=some/relative/path dest=/some/absolute/path checksum=yes times=no src=/tmp/helloworld dest=/var/www/helloword rsync_opts=--no-motd,--exclude=.git mode=pull 目的:將主控方/root目錄推送到指定節點的/tmp目錄下 命令:ansible 10.1.1.113 -m synchronize -a 'src=/root dest=/tmp/ compress=yes' 執行效果: delete=yes 使兩邊的內容同樣(即以推送方爲主) compress=yes 開啓壓縮,默認爲開啓 --exclude=.Git 忽略同步.git結尾的文件 注意:因爲模塊,默認都是推送push。所以,若是你在使用拉取pull功能的時候,能夠參考以下來實現 mode=pull 更改推送模式爲拉取模式 目的:將10.1.1.113節點的/tmp/a目錄拉取到主控節點的/root目錄下 命令:ansible 10.1.1.113 -m synchronize -a 'mode=pull src=/tmp/a dest=/root/ mode=pull' 因爲模塊默認啓用了archive參數,該參數默認開啓了recursive, links, perms, times, owner,group和-D參數。若是你將該參數設置爲no,那麼你將中止不少參數,好比會致使以下目的遞歸失敗,致使沒法拉取。 其餘相關的參數解釋: dest_port=22 # 指定目的主機的ssh端口,ansible配置文件中的 ansible_ssh_port 變量優先級高於該 dest_port 變量 rsync_path # 指定 rsync 命令來在遠程服務器上運行。這個參考rsync命令的--rsync-path參數, --rsync-path=PATH # 指定遠程服務器上的rsync命令所在路徑信息 rsync_timeout # 指定 rsync 操做的 IP 超時時間,和rsync命令的 --timeout 參數效果同樣
二.Script 腳本模塊服務器
有的時候須要去執行遠程的一個腳本,找到相應的模塊就能夠啦!!ssh
root@node1 ~]# ansible-doc -s script - name: 將本地腳本複製到遠程主機並運行之 action: script creates # 一個文件名,當這個文件存在,則該命令不執行 free_form= # 本地腳本路徑 removes # 一個文件名,這個文件不存在,則該命令不執行 ansible webserver -m script -a '/root/script.sh'
三.Unarchive模塊spa
用於解壓文件,模塊包含以下選項: copy:在解壓文件以前,是否先將文件複製到遠程主機,默認爲yes。若爲no,則要求目標主機上壓縮包必須存在。 creates:指定一個文件名,當該文件存在時,則解壓指令不執行 dest:遠程主機上的一個路徑,即文件解壓的路徑 grop:解壓後的目錄或文件的屬組 list_files:若是爲yes,則會列出壓縮包裏的文件,默認爲no,2.0版本新增的選項 mode:解決後文件的權限 src:若是copy爲yes,則須要指定壓縮文件的源路徑 owner:解壓後文件或目錄的屬主 示例以下: - unarchive: src=foo.tgz dest=/var/lib/foo - unarchive: src=/tmp/foo.zip dest=/usr/local/bin copy=no - unarchive: src=https://example.com/example.zip dest=/usr/local/bin copy=no
四.Cron模塊code
ansible host -s -m cron -a "name='註釋的內容' minute=10 hours=3(時間點) job='執行的命令'"orm