溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

五、ansible管理任務(wù)計劃、ansible安裝包和管理服務(wù)、使用ansible的playbook

發(fā)布時間:2020-07-31 05:30:25 來源:網(wǎng)絡(luò) 閱讀:276 作者:seventeen_ 欄目:系統(tǒng)運(yùn)維

一、ansible管理任務(wù)計劃

#?ansible?testhost?-m?cron?-a?"name='test?cron'?job='/bin/touch?/tmp/1212.txt'??weekday=6"

name指定任務(wù)計劃的名字,job指定它的命令是什么,后面指定它的分時日月周,不定義就是*。

[root@yw02?~]#?crontab?-l
#Ansible:?test?cron
*?*?*?*?6?/bin/touch?/tmp/1212.txt

第一行一定不能更改,一旦改了之后,就不能用這個工具對它去做操作了。


若要刪除該cron 只需要加一個字段 state=absent

#?ansible?testhost?-m?cron?-a?"name='test?cron'?state=absent"


其他的時間表示:分鐘 minute ,小時 hour ,日期 day ,月份 month 。


二、ansible安裝rpm包和管理服務(wù)

#?ansible?testhost?-m?yum?-a?"name=httpd"

在name后面還可以加上state=installed/removed ?安裝/卸載

啟動httpd的服務(wù),用到的模塊教service:

#?ansible?testhost?-m?service?-a?"name=httpd?state=started?enabled=yes"

啟動服務(wù)后,就可以到機(jī)器上ps aux看到了。

這里的name是centos系統(tǒng)里的服務(wù)名,可以通過chkconfig --list查到。

Ansible文檔的使用

ansible-doc -l ? 列出所有的模塊

ansible-doc cron ?查看指定模塊的文檔,相當(dāng)于系統(tǒng)里面的man配置。


三、使用ansible的playbook

playbook說白了就是把所有的配置搞到一個配置文件里去,然后執(zhí)行這個配置文件就行了。

相當(dāng)于把模塊寫入到配置文件里面,例:

#?vi??/etc/ansible/test.yml?//加入如下內(nèi)容
---
-?hosts:?yw02
??remote_user:?root
??tasks:
????-?name:?test_playbook
??????shell:?touch?/tmp/lishiming.txt

說明:?文件格式,后綴名是yml;第一行需要有三個杠,是固定格式;hosts參數(shù)指定了對哪些主機(jī)進(jìn)行操作,如果是多臺機(jī)器可以用逗號作為分隔,也可以使用主機(jī)組,在/etc/ansible/hosts里定義;

user參數(shù)指定了使用什么用戶登錄遠(yuǎn)程主機(jī)操作;

tasks指定了一個任務(wù),其下面的name參數(shù)同樣是對任務(wù)的描述,在執(zhí)行過程中會打印出來,shell是ansible模塊名字。

執(zhí)行:ansible-playbook test.yml

PLAY?[yw02]?**************************************************************************************************************************

TASK?[Gathering?Facts]?***************************************************************************************************************
ok:?[yw02]

TASK?[test_playbook]?*****************************************************************************************************************
?[WARNING]:?Consider?using?the?file?module?with?state=touch?rather?than?running?'touch'.??If?you?need?to?use?command?because?file?is
insufficient?you?can?add?'warn:?false'?to?this?command?task?or?set?'command_warnings=False'?in?ansible.cfg?to?get?rid?of?this
message.

changed:?[yw02]

PLAY?RECAP?***************************************************************************************************************************
yw02???????????????????????:?ok=2????changed=1????unreachable=0????failed=0????skipped=0????rescued=0????ignored=0


四、playbook里的變量

再來一個創(chuàng)建用戶的例子:

#?vi?/etc/ansible/create_user.yml?//加入如下內(nèi)容
---
-?name:?create_user
??hosts:?yw02
??user:?root
??gather_facts:?false
??vars:
????-?user:?"test"
??tasks:
????-?name:?create?user
??????user:?name="{{?user?}}"

說明:

name參數(shù)對該playbook實現(xiàn)的功能做一個概述,后面執(zhí)行過程中,會打印name變量的值 ,可以省略;

gather_facts參數(shù)指定了在以下任務(wù)部分執(zhí)行前,是否先執(zhí)行setup模塊獲取主機(jī)相關(guān)信息,這在后面的task會使用到setup獲取的信息時用到,如果不寫這行就會默認(rèn)收集facts,如果機(jī)器過多,建議就不收集了,影響執(zhí)行效率,也會給ansible壓力。

vars參數(shù),指定了變量,這里指定一個user變量,其值為test ,需要注意的是,變量值一定要用引號引??;

tasks下的user指定了調(diào)用user模塊,name是user模塊里的一個參數(shù),而增加的用戶名字調(diào)用了上面user變量的值,{{user}}=test。

[root@fuxi01?ansible]#?ansible-playbook?create_user.yml?

PLAY?[create_user]?*******************************************************************************************************************

TASK?[create?user]?*******************************************************************************************************************
changed:?[yw03]

PLAY?RECAP?***************************************************************************************************************************
yw03???????????????????????:?ok=1????changed=1????unreachable=0????failed=0????skipped=0????rescued=0????ignored=0

如果這個test用戶已經(jīng)存在了,就不會創(chuàng)建了,changed=0。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI