Linux運維-day42-綜合架構(gòu)-ansible模塊補充及playbook

環(huán)境準備:

m01管理服務(wù)器(外網(wǎng):10.0.0.61;內(nèi)網(wǎng):172.16.1.61)
backup(外網(wǎng):10.0.0.41;內(nèi)網(wǎng):172.16.1.41)
nfs01(外網(wǎng):10.0.0.31;內(nèi)網(wǎng):172.16.1.31)
web01(外網(wǎng):10.0.0.7;內(nèi)網(wǎng):172.16.1.7)

/etc/ansible/hosts主機清單中的配置為

[root@m01 ~]# tail -5 /etc/ansible/hosts
[oldboy]
172.16.1.41
172.16.1.31
[web]
172.16.1.7

一、ansible模塊補充 ※ ※ ※

1>cron(定時任務(wù)模塊)

參數(shù):
name:指定定時任務(wù)的注釋
minute:分鐘(0-59,/2)
month:月份(1-12,,/2)
job:指定定時任務(wù)的命令或腳本
hour:小時(0-23,,/2)
day:天(0-31,/2)
weekday:分鐘(0-6,*)
state:
??present:添加定時任務(wù)
??absent:刪除定時任務(wù)

#在backup和nfs01機器中添加一個定時任務(wù)每5分鐘同步系統(tǒng)時間

\\正常定時任務(wù)格式:
*/5 * * * * /sbin/ntpdate ntp1.aliyun.com>/dev/null 2>&1

\\ansible定時任務(wù)模塊格式:
ansible oldboy -m cron -a 'name="sync time" minute="*/5" job="/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null  2>&1" state=present'

2>mount(掛載模塊)

注:測試這個掛載模塊之前,一定要先在nfs01上配置好nfs

參數(shù):
?fstype:文件系統(tǒng)類型
?src:source 源
?path:掛載點
?opts:掛載參數(shù),defaults(默認)
?state:狀態(tài)(臨時、永久)
???present:開機掛載,僅將掛載設(shè)備寫入/etc/fstab
???mounted:掛載設(shè)備,并將配置寫入/etc/fstab
???unmounted:卸載設(shè)備,不會清除/etc/fstab寫入的配置
???absent:卸載設(shè)備,會清除/etc/fstab寫入的配置

#將nfs01機器上的共享目錄/nfs掛載到web01機器上的/upload

\\正常mount掛載命令:
mount -t nfs 172.16.1.31:/data /web01

\\ansible中mount模塊命令
ansible 172.16.1.7 -m mount -a 'src=172.16.1.31:/nfs path=/upload fstype=nfs state=mounted'

二、playbook介紹

2.1 playbook(劇本)的組成

play:定義的是主機的角色
task:定義的是具體執(zhí)行的任務(wù)
playbook:由一個或多個play組成,一個play可以包含多個task
任務(wù),簡單理解為,使用不同的模塊完成一件事情


簡單編寫一個playbook劇本

#在backup和nfs01機器中添加一個定時任務(wù)每5分鐘同步系統(tǒng)時間
1>playbook劇本內(nèi)容

[root@m01 ~]# cat /etc/ansible/cron-time.yml 
---
  - hosts: all
    tasks:
    - name: cron ntpdate
      cron: 
       name: sync time-v2
       minute: "*/5" 
       job: /sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1
       state: present
[root@m01 ~]# 

2>檢查劇本

[root@m01 ~]# ansible-playbook -C /etc/ansible/cron-time.yml

PLAY [all] ***************************************************************************************************************************

TASK [Gathering Facts] ***************************************************************************************************************
ok: [172.16.1.7]
ok: [172.16.1.31]
ok: [172.16.1.41]

TASK [cron ntpdate] ******************************************************************************************************************
changed: [172.16.1.41]
changed: [172.16.1.7]
changed: [172.16.1.31]

PLAY RECAP ***************************************************************************************************************************
172.16.1.31                : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
172.16.1.41                : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
172.16.1.7                 : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@m01 ~]#

3>檢查劇本執(zhí)行劇本

[root@m01 ~]# ansible-playbook  /etc/ansible/cron-time.yml

PLAY [all] ***************************************************************************************************************************

TASK [Gathering Facts] ***************************************************************************************************************
ok: [172.16.1.31]
ok: [172.16.1.41]
ok: [172.16.1.7]

TASK [cron ntpdate] ******************************************************************************************************************
changed: [172.16.1.41]
changed: [172.16.1.7]
changed: [172.16.1.31]

PLAY RECAP ***************************************************************************************************************************
172.16.1.31                : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
172.16.1.41                : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
172.16.1.7                 : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@m01 ~]# 

4>檢查劇本檢查定時任務(wù)是否添加成功

[root@m01 ~]# ansible all -a 'crontab -l'
172.16.1.7 | CHANGED | rc=0 >>
#Ansible: sync time
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null  2>&1
#Ansible: sync time-v2
*/5 * * * * /sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1

172.16.1.41 | CHANGED | rc=0 >>
#Ansible: sync time
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null  2>&1
#Ansible: sync time-v2
*/5 * * * * /sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1

172.16.1.31 | CHANGED | rc=0 >>
#Ansible: sync time
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null  2>&1
#Ansible: sync time-v2
*/5 * * * * /sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1

[root@m01 ~]# 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容