ansible中絕大多數(shù)的模塊都具有冪等特性,意味著執(zhí)行依次或多次不會(huì)產(chǎn)生副作用。但是shell、command、script、raw這四個(gè)模塊時(shí)不滿足冪等性,所有操作會(huì)重復(fù)執(zhí)行,但是有些操作不允許重復(fù)執(zhí)行,比如MySQL的初始化命令mysql_install_db,邏輯上它只在第一次配置的過程中初始化依次,其他任何時(shí)候都不應(yīng)該再執(zhí)行。所有,每當(dāng)使用這四個(gè)模塊的時(shí)候,都要想一想,重復(fù)執(zhí)行這個(gè)命令會(huì)不會(huì)產(chǎn)生負(fù)面影響。
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)景東,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
當(dāng)然,在上面的四個(gè)模塊中,除了raw模塊外,都提供了實(shí)現(xiàn)冪等特性的參數(shù),就是creates和removes:
示例如下:
---
- name: use some module
hosts: node
gather_facts: false
tasks:
# 網(wǎng)卡配置文件不存在時(shí)則不執(zhí)行
- name: use command module
command: ifup ens33
args:
removes: /etc/sysconfig/network-scripts/ifcfg-ens33
# mysql配置文件已存在時(shí)則不執(zhí)行,避免覆蓋
- name: use shell module
shell: cp /tmp/my.cnf /etc/my.cnf
args:
creates: /etc/my.cnf
經(jīng)過測(cè)試可以證明,使用removes或creates參數(shù)之后,就可以實(shí)現(xiàn)冪等性,保證命令不會(huì)重復(fù)執(zhí)行。
這四個(gè)模塊都不限于執(zhí)行shell命令或shell腳本,可以通過executable參數(shù)指定其他解釋器,如expec執(zhí)行expect腳本、perl解釋器執(zhí)行perl腳本等等。如下:
[root@ansible ansible]# cat test.yaml
---
- name: RUN a perl script
script: /some/local/script.pl
args:
executable: perl
網(wǎng)頁標(biāo)題:ansible中的冪等性
當(dāng)前路徑:http://jinyejixie.com/article44/gdpghe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、服務(wù)器托管、網(wǎng)站營(yíng)銷、小程序開發(fā)、網(wǎng)站策劃、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)