文章目錄
- Copy和Fetch
- File模塊
Copy和Fetch
copy和fetch模塊實踐
- copy模塊需要注意的點:在收集日志之前需要對文件先進行改名或者備份
- fetch模塊需要注意的點:復制的源文件的路徑必須是文件不能是目錄
- 建議全部使用絕對路徑,別使用相對路徑
- 確保ansible有足夠的權限去訪問源文件以及源目錄
需求1:將控制器中的文件 root/data/test 復制到192.168.1.100/tmp中,復制過程中將其所屬指定為root:root,權限設置755,然后test輸入 hello openEuler1
mkdir -p /root/data cd /root/data touch testansible 192.168.1.100 -m copy -a "src=/root/data/ dest=/tmp/data/ owner=root group=root mode=755" #將文件傳送到 ansible 192.168.1.100 -m copy -a "content='hello openEuler1' dest=/tmp/data/test" #被控制端文件添加內容 ansible 192.168.1.100 -a "cat /tmp/data/test" #查看被控制端文件內容
ansible 192.168.1.100 -m fetch -a "src=/tmp/data/test dest=/tmp" #被控制端文件拿回到控制端 ls /tmp/192.168.1.100/tmp/data cat test #到此完成文件傳送到被控制端并且添加文本內容,最后回到控制端
注意
#如果在控制端將文件修改之后執行下面的命令會對文件內容進行覆蓋 ansible 192.168.1.100 -m copy -a "src=/root/data/ dest=/tmp/data/ owner=root group=root mode=755" #但是如果加上 force 參數之后,不會對文本內容進行覆蓋 ansible 192.168.1.100 -m copy -a "force=no src=/root/data/ dest=/tmp/data/ owner=root group=root mode=755"
File模塊
之前使用 command 模塊創建文件存在告警,這說明創建文件有專門的模塊去處理
File模塊實踐
需求:被控制主機192.168.1.100 中創建目錄 /tmp/file/data,歸屬用戶和組指定為 test:test,權限設置為 755,然后在該目錄下創建文件 test,并為 test 創建軟鏈接指向 /tmp/link,最后刪除目錄 /tmp/file
#創建文件夾并且指定所屬用于所屬組且指定權限 ansible 192.168.1.100 -m file -a "path=/tmp/file/data owner=test group=test mode=755 state=directory" #創建文件 ansible 192.168.1.100 -m file -a "path=/tmp/file/data/test state=touch" #創建軟鏈接,源文件路徑/tmp/file/data/test,指定軟鏈接路徑 /tmp/link ansible 192.168.1.100 -m file -a "src=/tmp/file/data/test dest=/tmp/link state=link" #刪除文件 /tmp/file absent adj. 缺席的 未到的 ansible 192.168.1.100 -m file -a "path=/tmp/file state=absent" #檢查文件是否真的刪除掉了,此時會報錯,因為源文件沒有了 ansible 192.168.1.100 -m shell -a "ls /tmp/file/data | grep test"