您好,登錄后才能下訂單哦!
一、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。
免責(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)容。