自動化工具Ansible的模塊之在學習(1)

一.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

相關文章
相關標籤/搜索