1. 程式人生 > >ansible模塊批量管理

ansible模塊批量管理

ansible

1.[copy]模塊

ansible oldboy-m copy -a "src=/etc/hosts dest=/opt/"

加上backup=yes對客戶端的文件進行備份

ansible oldboy -m copy -a "src=/etc/hostsdest=/opt/ backup=yes"

2.Shell模塊

用之前需要將腳本先推送到客戶端才能執行

1)推送

ansible oldboy-m copy -a "src=/server/scripts/yum.sh dest=/server/scripts"

2)執行腳本

ansible oldboy-m shell -a "/bin/sh /server/scripts/yum.sh "

3.script模塊

不用將腳本推送到遠端,在本地也可以執行。

ansible oldboy-m script -a "/bin/sh /server/scripts/oldboy.sh"

4.service模塊

用於管理服務
該模塊包含如下選項:

arguments:給命令行提供一些選項

enabled:是否開機啟動 yes|no

name:必選項,服務名稱

pattern:定義一個模式,如果通過status指令來查看服務的狀態時,沒有響應,就會通過ps指令在進程中根據該模式進行查找,如果匹配到,則認為該服務依然在運行

runlevel:運行級別

sleep:如果執行了restarted,在則stop和start之間沈睡幾秒鐘

state:對當前服務執行啟動,停止、重啟、重新加載等操作(started,stopped,restarted,reloaded)

ansible oldboy-m service -a "name=postfix state=started enabled=yes"

5.file模塊

force:需要在兩種情況下強制創建軟鏈接,一種是源文件不存在但之後會建立的情況下;另一種是目標軟鏈接已存在,需要先取消之前的軟鏈,然後創建新的軟鏈,有兩個選項:yes|no

group:定義文件/目錄的屬組

mode:定義文件/目錄的權限

owner:定義文件/目錄的屬主

path:必選項,定義文件/目錄的路徑

recurse:遞歸的設置文件的屬性,只對目錄有效

src:要被鏈接的源文件的路徑,只應用於state=link的情況

dest:被鏈接到的路徑,只應用於state=link的情況

state: directory:如果目錄不存在,創建目錄
file:即使文件不存在,也不會被創建
link:創建軟鏈接
hard:創建硬鏈接
touch:如果文件不存在,則會創建一個新的文件,如果文件或目錄已存在,則更新其最後修改時間
absent:刪除目錄、文件或者取消鏈接文件

#在客戶端創建/opt/dir_01的目錄,屬組和用戶組都是oldboy,權限是600

ansible oldboy-m file -a "dest=/opt/dir_01/ owner=oldboy group=oldboy mode=0600state=directory"

#在客戶端創建/opt/file_01文件,權限為644屬組和用戶組都是oldboy

ansible oldboy-m file -a "dest=/opt/file_01 mode=0644 owner=oldboy group=oldboystate=touch"

#刪除/opt/file_01

ansible oldboy-m file -a "dest=/opt/file_01 state=absent"

6.cron模塊

用於管理計劃任務

包含如下選項:

backup:對遠程主機上的原任務計劃內容修改之前做備份

cron_file:如果指定該選項,則用該文件替換遠程主機上的cron.d目錄下的用戶的任務計劃

day:日(1-31,*,*/2,……)

hour:小時(0-23,*,*/2,……)

minute:分鐘(0-59,*,*/2,……)

month:月(1-12,*,*/2,……)

weekday:周(0-7,*,……)

job:要執行的任務,依賴於state=present

name:該任務的描述

special_time:指定什麽時候執行,參數:reboot,yearly,annually,monthly,weekly,daily,hourly

state:確認該任務計劃是創建還是刪除

user:以哪個用戶的身份執行

#創建定時任務

ansible oldboy-m cron -a "name=oldboy14 minute=*/4 job=‘/bin/sh /server/scripts/77.sh&>/dev/null‘"

#刪除定時任務state=absent是刪除的意思

ansible oldboy-m cron -a "name=oldboy14 minute=*/4 job=‘/bin/sh /server/scripts/77.sh&>/dev/null‘ state=absent"











ansible模塊批量管理