概要說明
ansible是一款非常強大的自動化運維工具,使我們可以很快捷地實現對遠端目標伺服器的自動化運維,包括伺服器維護,檔案操作,實時監控,專案服務更新,備份等等N多行為,就像你手工遠端到伺服器的一系列操作,都可以透過ansible幫你完成,而且它還是可以批次操作的。今天介紹的是它的file模組。
1,file模組用來管理檔案和檔案屬性(刪除檔案、符號連結或目錄)
2,對於 遠端服務是Windows 目標,改用ansible。windows。win_file模組
引數說明
實際工作中比較常用的引數有:
path:要管理的檔案的路徑
state:狀態這個引數,它的值有,absent,
directory,
file,
hard,link,touch
absent:如果path指定是目錄,目錄將被遞迴刪除,
如果path指定是檔案,檔案將被刪除,檔案或符號連結將被取消連結
如果要刪除的目錄或檔案不存在,預設不會報錯。
directory:
使用
directory值
,則將建立所有中間子目錄(如果它們不存在)。
由Ansible 1。7開始,具有建立中間子目錄的許可權
file:如果使用file值 ,但沒有使用其它引數,則返回路徑的當前狀態
如果使用了其它引數,如mode,則會改變檔案的許可權,如果檔案不存在,
是不會建立檔案的。
hard:將建立或更改硬連結
link:
將建立或更改符號連結
touch:可以用來判斷檔案是否存在,如果不存在,將會建立一個空檔案。
mode:給檔案或目錄授權。授權時,如果你習慣用數字,如644,777等,
在ansible中需要寫成0644,0777,或寫成 “644”,“777”。
從1。8開始,可指使用符號授權(例如,u+rwx或u=rw,g=r,o=r)。
如果未指定mode,則新建立的檔案將按當前系統預設的許可權處理
該模組其他引數可參見下圖:
例項
更改檔案授權
- name: Change file permissions ansible。builtin。file: path: /root/foo。conf mode: ‘1777’
建立一個軟連結
- name: Create a link ansible。builtin。file: src: /path1/to/link/to dest: /path2/to/symlink state: link
刪除檔案(當foo。txt檔案不存在,將不會返回報錯)
- name: Remove file ansible。builtin。file: path: /root/foo。txt state: absent
刪除目錄(將刪除子目錄)
- name: Recursively remove directory ansible。builtin。file: path: /root/myfoo state: absent