注意:-a 參數後的命令用單引號;雙引號有可能會出問題,特別是在user模塊html
模塊一:從網絡下載文件至遠程主機,get_url模塊python
[root@ansible ~]# ansible test -m get_url -a 'url=http://nginx.org/download/nginx-1.6.3.tar.gz dest=/tmp'
經常使用選項:nginx
backup #建立一個包括時間戳信息的備份文件,這樣你能夠獲得原始文件。 dest #將文件下載到的絕對路徑。 若是dest是目錄,則服務器提供的文件名, 若是沒有提供,則將使用遠程服務器上的URL的基本名稱。 若是一個目錄,force沒有效果。 若是dest是一個目錄,文件將老是被下載(無論force選項),可是隻有當內容改變時才被替換。 force # 若是是的,dest不是目錄,將每次下載文件,若是內容改變,替換文件。若是否,則只有在目標不存在時纔會下載該文件。通常應該是隻對小的本地文件。在0.6以前,此模塊的行爲好像是默認值。 group #應該擁有文件/目錄的組的名稱,將被髮送到chown。 mode #模式文件或目錄應該是。對於那些用於/ usr / bin / chmod的記住,模式其實是八進制數字(如0644)。離開領先的零可能會有意想不到的結果。 owner #應該擁有文件/目錄的用戶的名稱,將被髮送到chown。 imeout #網址請求的超時(以秒爲單位) tmp_dest #臨時文件下載到的絕對路徑。默認爲TMPDIR,TEMP或TMP url #下載路徑,能夠是HTTP, HTTPS, or FTP URL url_password #用於HTTP基本認證的密碼。 url_username #用於HTTP基本認證的用戶名。 use_proxy #若是沒有,它將不使用代理,即便在目標主機上的環境變量中定義了一個代理。
參考:<https://docs.ansible.com/ansible/latest/modules/get_url_module.html>apache
參考:<https://www.iyunv.com/thread-321501-1-1.html>tomcat
模塊二:用於解壓縮文件,unarchive服務器
[root@ansible ~]# ansible test -m unarchive -a 'src=/srv/tomcat8/apache-tomcat-8.0.29.tar.gz dest=/usr/local copy=no mode=0755'
經常使用選項:網絡
copy #默認爲yes, 當copy=yes,那麼拷貝的文件是從ansible主機複製到遠程主機上的, 當copy=no,那麼會在遠程主機上尋找src源文件 src #源路徑,能夠是ansible主機上的路徑,也能夠是遠程主機上的路徑,若是是遠程主機上的路徑,則須要設置copy=no remote_src: #設置yes能夠控制遠程主機文件
dest: #遠程主機上的目標路徑 mode: #設置解壓縮後的文件權限
參考:<https://docs.ansible.com/ansible/latest/modules/unarchive_module.html>ssh
參考:<http://www.javashuo.com/article/p-yvscnezb-ca.html>url
模塊三:用於同步歸檔文件,synchronizespa
[root@ansible ~]# ansible test -m synchronize -a "src=/tmp/tst-syn dest=/opt/dst-syn"
經常使用選項:
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 模式用於從遠程主機上取文件
參考:<https://docs.ansible.com/ansible/latest/modules/synchronize_module.html>