ansible常用模塊 加-m 不加名字默認(rèn)是command模塊
scripts模塊滴某,把主控端上的腳本復(fù)制到被控端上執(zhí)行剪个,腳本是在主控端上的
ansible host-inventory? -m script -a? “腳本絕對(duì)路徑名”
我們可以在被控端上查看是否有對(duì)應(yīng)的進(jìn)程
free_form參數(shù) :必須參數(shù),指定需要執(zhí)行的腳本罪郊,腳本位于 ansible 管理主機(jī)本地蠕蚜,并沒(méi)有具體的一個(gè)參數(shù)名叫 free_form,具體解釋請(qǐng)參考 command 模塊排龄。
chdir參數(shù) : 此參數(shù)的作用就是指定一個(gè)遠(yuǎn)程主機(jī)中的目錄波势,在執(zhí)行對(duì)應(yīng)的腳本之前,會(huì)先進(jìn)入到 chdir 參數(shù)指定的目錄中橄维。
creates參數(shù) :使用此參數(shù)指定一個(gè)遠(yuǎn)程主機(jī)中的文件尺铣,當(dāng)指定的文件存在時(shí),就不執(zhí)行對(duì)應(yīng)腳本争舞,可參考 command 模塊中的解釋凛忿。
removes參數(shù) :使用此參數(shù)指定一個(gè)遠(yuǎn)程主機(jī)中的文件,當(dāng)指定的文件不存在時(shí)竞川,就不執(zhí)行對(duì)應(yīng)腳本店溢,可參考 command 模塊中的解釋。
ping模塊委乌,我們可以來(lái)批量測(cè)試許多服務(wù)器是否跌機(jī)或者哪些網(wǎng)絡(luò)中斷了
command模塊
默認(rèn)模塊床牧,可以不加command,可以加-a 參數(shù)在被控端上執(zhí)行簡(jiǎn)單命令
ansible host-group -a "find . -name 'docker' "
free_form參數(shù) :必須參數(shù)遭贸,指定需要遠(yuǎn)程執(zhí)行的命令戈咳。需要說(shuō)明一點(diǎn),free_form 參數(shù)與其他參數(shù)(如果想要使用一個(gè)參數(shù)壕吹,那么則需要為這個(gè)參數(shù)賦值著蛙,也就是name=value模式)并不相同。比如耳贬,當(dāng)我們想要在遠(yuǎn)程主機(jī)上執(zhí)行 ls 命令時(shí)踏堡,我們并不需要寫(xiě)成”free_form=ls” ,這樣寫(xiě)反而是錯(cuò)誤的咒劲,因?yàn)椴](méi)有任何參數(shù)的名字是 free_form顷蟆,當(dāng)我們想要在遠(yuǎn)程主機(jī)中執(zhí)行 ls 命令時(shí),直接寫(xiě)成 ls 即可腐魂。因?yàn)?command 模塊的作用是執(zhí)行命令慕的,所以,任何一個(gè)可以在遠(yuǎn)程主機(jī)上執(zhí)行的命令都可以被稱為 free_form挤渔。
chdir參數(shù) : 此參數(shù)的作用就是指定一個(gè)目錄肮街,在執(zhí)行對(duì)應(yīng)的命令之前,會(huì)先進(jìn)入到 chdir 參數(shù)指定的目錄中判导。
creates參數(shù) :看到 creates嫉父,你可能會(huì)從字面上理解這個(gè)參數(shù),但是使用這個(gè)參數(shù)并不會(huì)幫助我們創(chuàng)建文件眼刃,它的作用是當(dāng)指定的文件存在時(shí)绕辖,就不執(zhí)行對(duì)應(yīng)命令,比如擂红,如果 /testdir/test文件存在仪际,就不執(zhí)行我們指定的命令。
removes參數(shù) :與 creates 參數(shù)的作用正好相反,它的作用是當(dāng)指定的文件不存在時(shí)树碱,就不執(zhí)行對(duì)應(yīng)命令肯适,比如,如果 /testdir/tests 文件不存在成榜,就不執(zhí)行我們指定的命令框舔,此參數(shù)并不會(huì)幫助我們刪除文件。
cron模塊赎婚,顧名思義和crontab的功能一樣刘绣,用于定時(shí)執(zhí)行腳本,一般可以用于數(shù)據(jù)庫(kù)的定時(shí)備份
ansible db -m cron -a 'minute="*/10 " hour=" " day=" " mouth= " " weekday=" " job= "腳本路徑或命令? /bin/echo trippal "
name= “(必須填寫(xiě))? test ”? state="present or absent"
ansible db? -a? "crontab -l"
setup模塊
用于獲取主機(jī)信息
ansible -m setup -a 'filter=ansible_machine'
ansible_all_ipv4_addresses:僅顯示ipv4的信息挣输。
ansible_devices:僅顯示磁盤(pán)設(shè)備信息纬凤。
ansible_distribution:顯示是什么系統(tǒng),例:centos,suse等撩嚼。
ansible_distribution_major_version:顯示是系統(tǒng)主版本移斩。
ansible_distribution_version:僅顯示系統(tǒng)版本。
ansible_machine:顯示系統(tǒng)類型绢馍,例:32位向瓷,還是64位。
ansible_eth0:僅顯示eth0的信息舰涌。
ansible_hostname:僅顯示主機(jī)名猖任。
ansible_kernel:僅顯示內(nèi)核版本。
ansible_lvm:顯示lvm相關(guān)信息瓷耙。
ansible_memtotal_mb:顯示系統(tǒng)總內(nèi)存朱躺。
ansible_memfree_mb:顯示可用系統(tǒng)內(nèi)存。
ansible_memory_mb:詳細(xì)顯示內(nèi)存情況搁痛。
ansible_swaptotal_mb:顯示總的swap內(nèi)存长搀。
ansible_swapfree_mb:顯示swap內(nèi)存的可用內(nèi)存。
ansible_mounts:顯示系統(tǒng)磁盤(pán)掛載情況鸡典。
ansible_processor:顯示cpu個(gè)數(shù)(具體顯示每個(gè)cpu的型號(hào))源请。
ansible_processor_vcpus:顯示cpu個(gè)數(shù)(只顯示總的個(gè)數(shù))。
更多自己去ansible官網(wǎng)看看
user模塊
free_form參數(shù) :必須參數(shù)彻况,指定需要遠(yuǎn)程執(zhí)行的命令谁尸。需要說(shuō)明一點(diǎn),free_form 參數(shù)與其他參數(shù)(如果想要使用一個(gè)參數(shù)纽甘,那么則需要為這個(gè)參數(shù)賦值良蛮,也就是name=value模式)并不相同。比如悍赢,當(dāng)我們想要在遠(yuǎn)程主機(jī)上執(zhí)行 ls 命令時(shí)决瞳,我們并不需要寫(xiě)成”free_form=ls” 货徙,這樣寫(xiě)反而是錯(cuò)誤的,因?yàn)椴](méi)有任何參數(shù)的名字是 free_form皮胡,當(dāng)我們想要在遠(yuǎn)程主機(jī)中執(zhí)行 ls 命令時(shí)痴颊,直接寫(xiě)成 ls 即可。因?yàn)?command 模塊的作用是執(zhí)行命令胸囱,所以祷舀,任何一個(gè)可以在遠(yuǎn)程主機(jī)上執(zhí)行的命令都可以被稱為 free_form瀑梗。
chdir參數(shù) : 此參數(shù)的作用就是指定一個(gè)目錄烹笔,在執(zhí)行對(duì)應(yīng)的命令之前,會(huì)先進(jìn)入到 chdir 參數(shù)指定的目錄中抛丽。
creates參數(shù) :看到 creates谤职,你可能會(huì)從字面上理解這個(gè)參數(shù),但是使用這個(gè)參數(shù)并不會(huì)幫助我們創(chuàng)建文件亿鲜,它的作用是當(dāng)指定的文件存在時(shí)允蜈,就不執(zhí)行對(duì)應(yīng)命令,比如蒿柳,如果 /testdir/test文件存在饶套,就不執(zhí)行我們指定的命令。
removes參數(shù) :與 creates 參數(shù)的作用正好相反垒探,它的作用是當(dāng)指定的文件不存在時(shí)妓蛮,就不執(zhí)行對(duì)應(yīng)命令,比如圾叼,如果 /testdir/tests 文件不存在蛤克,就不執(zhí)行我們指定的命令,此參數(shù)并不會(huì)幫助我們刪除文件夷蚊。
yum模塊
yum 模塊可以幫助我們?cè)诒豢囟朔?wù)器安裝或者卸載相關(guān)軟件包
name參數(shù):必須參數(shù)构挤,用于指定需要管理的軟件包,比如 nginx惕鼓。
state參數(shù):用于指定軟件包的狀態(tài) 筋现,默認(rèn)值為。present箱歧,表示確保軟件包已經(jīng)安裝夫否,除了。present叫胁,其他可用值有 installed凰慈、latest、absent驼鹅、removed微谓,其中 installed 與present 等效森篷,latest 表示安裝 yum 中最新的版本,absent 和 removed 等效豺型,表示刪除對(duì)應(yīng)的軟件包仲智。
disable_gpg_check參數(shù):用于禁用對(duì) rpm 包的公鑰 gpg 驗(yàn)證。默認(rèn)值為 no姻氨,表示不禁用驗(yàn)證钓辆,設(shè)置為 yes 表示禁用驗(yàn)證,即不驗(yàn)證包肴焊,直接安裝前联。在對(duì)應(yīng)的 yum 源沒(méi)有開(kāi)啟 gpg 驗(yàn)證的情況下,需要將此參數(shù)的值設(shè)置為 yes娶眷,否則無(wú)法安裝
enablerepo參數(shù):用于指定安裝軟件包時(shí)臨時(shí)啟用的 yum 源似嗤。假如你想要從A源中安裝軟件,但是你不確定A源是否啟用了届宠,你可以在安裝軟件包時(shí)將此參數(shù)的值設(shè)置為 yes烁落,即使A源的設(shè)置是未啟用,也可以在安裝軟件包時(shí)臨時(shí)啟用A源豌注。
disablerepo參數(shù):用于指定安裝軟件包時(shí)臨時(shí)禁用的 yum 源伤塌。某些場(chǎng)景下需要此參數(shù),比如轧铁,當(dāng)多個(gè) yum 源中同時(shí)存在要安裝的軟件包時(shí)每聪,你可以使用此參數(shù)臨時(shí)禁用某個(gè)源,這樣設(shè)置后属桦,在安裝軟件包時(shí)則不會(huì)從對(duì)應(yīng)的源中選擇安裝包熊痴。
enablerepo 參數(shù)和 disablerepo 參數(shù)可以同時(shí)使用。
因?yàn)槲疫@里對(duì)應(yīng)的yum源有開(kāi)啟 gpg 驗(yàn)證聂宾,所以不能設(shè)置disable_gpg_check為yes果善,必須驗(yàn)證gpgcheck才能安裝
file模塊
傳送文件用的模塊
創(chuàng)建文件,如果已經(jīng)有了系谐,那么就只更新時(shí)間戳
.在 nginx-group 主機(jī)上創(chuàng)建一個(gè)名為?/root/trippal 的目錄巾陕,如果?/testdir/trippal 目錄已經(jīng)存在,則不進(jìn)行任何操作纪他。
path參數(shù) :必須參數(shù)鄙煤,用于指定要操作的文件或目錄,在之前版本的ansible中茶袒,使用dest參數(shù)或者name參數(shù)指定要操作的文件或目錄梯刚,為了兼容之前的版本,使用dest或name也可以薪寓。
state參數(shù) :此參數(shù)非常靈活亡资,其對(duì)應(yīng)的值需要根據(jù)情況設(shè)定澜共。比如,我們想要在遠(yuǎn)程主機(jī)上創(chuàng)建/testdir/a/b目錄锥腻,那么則需要設(shè)置path=/testdir/a/b嗦董,但是,我們無(wú)法從”/testdir/a/b“這個(gè)路徑看出b是一個(gè)文件還是一個(gè)目錄瘦黑,ansible也同樣無(wú)法單單從一個(gè)字符串就知道你要?jiǎng)?chuàng)建文件還是目錄京革,所以,我們需要通過(guò)state參數(shù)進(jìn)行說(shuō)明幸斥。當(dāng)我們想要?jiǎng)?chuàng)建的/testdir/a/b是一個(gè)目錄時(shí)匹摇,需要將state的值設(shè)置為directory,”directory”為目錄之意睡毒,當(dāng)它與path結(jié)合来惧,ansible就能知道我們要操作的目標(biāo)是一個(gè)目錄冗栗。同理演顾,當(dāng)我們想要操作的/testdir/a/b是一個(gè)文件時(shí),則需要將state的值設(shè)置為touch隅居。當(dāng)我們想要?jiǎng)?chuàng)建軟鏈接文件時(shí)钠至,需將state設(shè)置為link。想要?jiǎng)?chuàng)建硬鏈接文件時(shí)胎源,需要將state設(shè)置為hard棉钧。當(dāng)我們想要?jiǎng)h除一個(gè)文件時(shí)(刪除時(shí)不用區(qū)分目標(biāo)是文件、目錄涕蚤、還是鏈接)宪卿,則需要將state的值設(shè)置為absent,”absent”為缺席之意万栅,當(dāng)我們想讓操作的目標(biāo)”缺席”時(shí)佑钾,就表示我們想要?jiǎng)h除目標(biāo)。
src參數(shù) :當(dāng)state設(shè)置為link或者h(yuǎn)ard時(shí)烦粒,表示我們想要?jiǎng)?chuàng)建一個(gè)軟鏈或者硬鏈休溶,所以,我們必須指明軟鏈或硬鏈鏈接的哪個(gè)文件扰她,通過(guò)src參數(shù)即可指定鏈接源兽掰。
force參數(shù) : 當(dāng)state=link的時(shí)候,可配合此參數(shù)強(qiáng)制創(chuàng)建鏈接文件徒役,當(dāng)force=yes時(shí)孽尽,表示強(qiáng)制創(chuàng)建鏈接文件。不過(guò)強(qiáng)制創(chuàng)建鏈接文件分為三種情況忧勿。情況一:當(dāng)要?jiǎng)?chuàng)建的鏈接文件指向的源文件并不存在時(shí)杉女,使用此參數(shù)艇拍,可以先強(qiáng)制創(chuàng)建出鏈接文件。情況二:當(dāng)要?jiǎng)?chuàng)建鏈接文件的目錄中已經(jīng)存在與鏈接文件同名的文件時(shí)宠纯,將force設(shè)置為yes卸夕,會(huì)將同名文件覆蓋為鏈接文件,相當(dāng)于刪除同名文件婆瓜,創(chuàng)建鏈接文件快集。情況三:當(dāng)要?jiǎng)?chuàng)建鏈接文件的目錄中已經(jīng)存在與鏈接文件同名的文件,并且鏈接文件指向的源文件也不存在廉白,這時(shí)會(huì)強(qiáng)制替換同名文件為鏈接文件个初。
owner參數(shù) :用于指定被操作文件的屬主,屬主對(duì)應(yīng)的用戶必須在遠(yuǎn)程主機(jī)中存在猴蹂,否則會(huì)報(bào)錯(cuò)院溺。
group參數(shù) :用于指定被操作文件的屬組,屬組對(duì)應(yīng)的組必須在遠(yuǎn)程主機(jī)中存在磅轻,否則會(huì)報(bào)錯(cuò)珍逸。
mode參數(shù):用于指定被操作文件的權(quán)限,比如聋溜,如果想要將文件權(quán)限設(shè)置為”rw-r-x---“谆膳,則可以使用mode=650進(jìn)行設(shè)置,或者使用mode=0650撮躁,效果也是相同的漱病。如果想要設(shè)置特殊權(quán)限,比如為二進(jìn)制文件設(shè)置suid把曼,則可以使用mode=4700杨帽。
recurse參數(shù):當(dāng)要操作的文件為目錄,將recurse設(shè)置為yes嗤军,可以遞歸的修改目錄中文件的屬性注盈。
service模塊
管理服務(wù)的模塊,一般用來(lái)開(kāi)啟或者關(guān)閉型雳,查看服務(wù)的狀態(tài)
name參數(shù):此參數(shù)用于指定需要操作的服務(wù)名稱当凡,比如 nginx。
state參數(shù):此參數(shù)用于指定服務(wù)的狀態(tài)纠俭,比如沿量,我們想要啟動(dòng)遠(yuǎn)程主機(jī)中的 nginx,則可以將 state 的值設(shè)置為 started冤荆;如果想要停止遠(yuǎn)程主機(jī)中的服務(wù),則可以將 state 的值設(shè)置為 stopped钓简。此參數(shù)的可用值有 started乌妒、stopped汹想、restarted、reloaded撤蚊。
enabled參數(shù):此參數(shù)用于指定是否將服務(wù)設(shè)置為開(kāi)機(jī) 啟動(dòng)項(xiàng)古掏,設(shè)置為 yes 表示將對(duì)應(yīng)服務(wù)設(shè)置為開(kāi)機(jī)啟動(dòng),設(shè)置為 no 表示不會(huì)開(kāi)機(jī)啟動(dòng)侦啸。
這個(gè)太簡(jiǎn)單了槽唾,我在這里不詳細(xì)介紹