其實前面學習了那麼多的子產品,我有個感悟,ansible的各類子產品都依賴于甚至說跟我們的linux常用功能極為相似,下面我繼續學習ansible的定時任務子產品,類似于linux下的contrab子產品

以上的指令表示
每天的一點零五分執行echo test
每三天的一點一分執行echo test
重新開機後執行echo test
每個小時執行echo test
來看一下corn子產品的參數:
ansible test177 -m cron -a "name='test crontab' minute=1 job='echo test'"
上面的指令表示在177的受管機上建立一個名字叫做test crontab的任務,任務内容是每一分鐘輸出echo test
在受管主機上指定使用者檢視一下任務
如果不想要這個定時任務就用crontab -e打開系統定時檔案,找到對應的定時任務删除即可
ansible test177 -m cron -a "name='test crontab' minute=1 hour=1 day=*/3 job='echo test'"
這個指令表示在177上每三天的一點一分執行echo test
minute=1表示幾點的幾分鐘,并不表示每一分鐘,剛才的了解有誤,每分鐘用/ *表示
ansible test177 -m cron -a "name='test special time' special_time=reboot job='echo time'"
上面的指令表示在177上建立一個test special time的任務,在每次開機時執行echo time
ansible test177 -m cron -a "name='test special time' special_time=hourly job='echo test' backup=yes"
表示每一個小時執行echo test 如果受管機上存在special time這個任務就替換掉
可以看到原來的重新開機任務已經不見了
ansible test177 -m cron -a "name='test special time' state=absent backup=yes"
表示在177上删除這個任務,并且進行備份
從傳回的狀态可以看出我們的備份位置
ansible test177 -m cron -a "user=mysql name='test special time' special_time=hourly job='echo test'"
預設情況下是指定root使用者,如果想指定使用者就直接加user就行
ansible test177 -m cron -a "name='test crontab' minute=1 hour=1 day=*/3 job='echo test' disabled=yes backup=yes"
将我們三天一次的任務注釋掉,同時做備份檔案
如果你執行disabled的時候,打錯了時間,比如把minute=1打成了minute=2,那麼在注釋掉後,它的時間也會随之改變
是以要在後面加上backup參數以免造成不必要的麻煩
service
service子產品可以幫助我們啟動受管主機上的服務,例如mysql,nginx等,但是隻能啟動有service功能的受管機,包括systemctl啟動,
ansible test177 -m service -a "name=httpd state=started"
将177中的httpd處于啟動狀态
ansible test177 -m service -a "name=nginx state=stopped"
将177中的nginx處于停止狀态
ansible test177 -m service -a " name='nginx' enabled=yes"
将177的nginx服務變成開機啟動