在之前寫了一篇關(guān)于安裝和配置Ansible的文章。那個(gè)教程只包含幾個(gè)使用方法的例子。如果你是Ansible新手,建議閱讀前面的文章。一旦熟悉了,就可以繼續(xù)閱讀這篇文章。
默認(rèn)情況下,Ansible僅使用5個(gè)并行進(jìn)程。要在多臺(tái)主機(jī)上執(zhí)行操作,必須通過添加-f [進(jìn)程數(shù)]選項(xiàng)手動(dòng)設(shè)置進(jìn)程數(shù)。
什么是點(diǎn)對點(diǎn)ad-hoc命令?
點(diǎn)對點(diǎn)命令用于在一個(gè)或多個(gè)管理大象節(jié)點(diǎn)上自動(dòng)執(zhí)行任務(wù)。很簡單,但不能重復(fù)使用。使用/usr/bin/ansible二進(jìn)制文件執(zhí)行所有操作。
點(diǎn)到點(diǎn)命令最適合執(zhí)行一次的任務(wù)。例如,要確定指定的用戶是否可用,可以使用命令行,而無需編寫腳本。
為什么你要了解點(diǎn)對點(diǎn)命令?
點(diǎn)對點(diǎn)命令證明了Ansible的簡單性和強(qiáng)大功能。從2.9版開始支持3389個(gè)模塊,因此需要了解和學(xué)習(xí)定期使用的Ansible模塊列表。
第一次使用Ansible時(shí),可以使用點(diǎn)到點(diǎn)命令輕松練習(xí)這些模塊和參數(shù)。
你在這里學(xué)到的概念將直接移植到劇本中。
點(diǎn)對點(diǎn)命令的一般語法:
Ansible [模式] -m [模塊] -a '[模塊選項(xiàng)]'
點(diǎn)對點(diǎn)命令由以下四部分組成:
區(qū)段描述輸入ansible指令模式清單或執(zhí)行指定的群組模組指定的模組名稱模組選項(xiàng)模組參數(shù)
如何使用 Ansible 清單文件
Ansible的主清單文件/etc/ansible/hosts可直接調(diào)用。否則,可以使用-i選項(xiàng)指定Ansible清單文件的路徑。
什么是模式以及如何使用它?
Ansible模式可以表示主機(jī)、IP地址、清單組、主機(jī)組或清單中的所有主機(jī)??梢詧?zhí)行命令和腳本。圖案非常靈活,可以根據(jù)需要使用。
例如,可以排除主機(jī)、使用通配符或正則表達(dá)式等。
下表說明了常見的模式和用法。但是,如果它不能滿足你的要求,可以在ansible-playbook中使用帶有-e參數(shù)的圖案中的變量。
說明模式大象對所有主機(jī)all(或*)清單中的所有服務(wù)器運(yùn)行Ansible的主機(jī)host1僅對指定主機(jī)運(yùn)行Ansible多主機(jī)host1:host2(或host1),對host2以上的多臺(tái)主機(jī)運(yùn)行Ansible的web服務(wù)器組web服務(wù)器組中的Ansible
什么是
Ansible 模塊,它干了什么?
模塊,也稱為“任務(wù)插件”或“庫插件”,它是一組代碼單元,可以直接或通過劇本在遠(yuǎn)程主機(jī)上執(zhí)行指定任務(wù)。
Ansible 在遠(yuǎn)程目標(biāo)節(jié)點(diǎn)上執(zhí)行指定模塊并收集其返回值。
每個(gè)模塊都支持多個(gè)參數(shù),可以滿足用戶的需求。除少數(shù)模塊外,幾乎所有模塊都采用 key=value
參數(shù)。你可以一次添加帶有空格的多個(gè)參數(shù),而command
或shell
模塊會(huì)直接運(yùn)行你輸入的字符串。
我們將添加一個(gè)包含最常用的“模塊選項(xiàng)”參數(shù)的表。
列出所有可用的模塊,運(yùn)行以下命令:
$ ansible-doc -l
運(yùn)行以下命令來閱讀指定模塊的文檔:
$ ansible-doc [模塊]
1)如何在 Linux 上使用 Ansible 列出目錄的內(nèi)容
可以使用 Ansible command
模塊來完成這項(xiàng)操作,如下所示。我們列出了node1.2g.lab
和nod2.2g.lab
* 遠(yuǎn)程服務(wù)器上daygeek
用戶主目錄的內(nèi)容。
$ ansible web -m command -a "ls -lh /home/daygeek"
node1.2g.lab | CHANGED | rc=0 >>
total 12K
drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Desktop
drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Documents
drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Downloads
drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Music
-rwxr-xr-x. 1 daygeek daygeek 159 Mar 4 2019
drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Pictures
drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Public
drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Templates
-rwxrwxr-x. 1 daygeek daygeek 138 Mar 10 2019 u
-rw-rw-r--. 1 daygeek daygeek 18 Mar 10 2019 u
drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Videos
node2.2g.lab | CHANGED | rc=0 >>
total 0
drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Desktop
drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Documents
drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Downloads
drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Music
drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Pictures
drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Public
drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Templates
drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Videos
2)如何在 Linux 使用 Ansible 管理文件
Ansible 的 copy
模塊將文件從本地系統(tǒng)復(fù)制到遠(yuǎn)程系統(tǒng)。使用 Ansiblecommand
模塊將文件移動(dòng)或復(fù)制到遠(yuǎn)程計(jì)算機(jī)。
$ ansible web -m copy -a "src=/home/daygeek/backu dest=/home/u1" --become
node1.2g.lab | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"checksum": "ad8aadc0542028676b5fe34c94347829f0485a8c",
"dest": "/home/u1;,
"gid": 0,
"group": "root",
"md5sum": "ee8e778646e00456a4cedd5fd6458cf5",
"mode": "0644",
"owner": "root",
"secontext": "unconfined_ubject_r:user_home_t:s0", "size": 30720, "src": "/home/daygeek/.ansible/tm;, "state": "file", "uid": 0 } node2.2g.lab | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/libexec/platform-python" }, "changed": true, "checksum": "ad8aadc0542028676b5fe34c94347829f0485a8c", "dest": "/home/u1;, "gid": 0, "group": "root", "md5sum": "ee8e778646e00456a4cedd5fd6458cf5", "mode": "0644", "owner": "root", "secontext": "unconfined_ubject_r:user_home_t:s0", "size": 30720, "src": "/home/daygeek/.ansible/tm;, "state": "file", "uid": 0 }
我們可以運(yùn)行以下命令進(jìn)行驗(yàn)證:
$ ansible web -m command -a "ls -lh /home/u1" --become
node1.2g.lab | CHANGED | rc=0 >>
total 36K
-rw-r--r--. 1 root root 30K Jan 22 14:56 Cen
-rw-r--r--. 1 root root 25 Dec 9 03:31 u
node2.2g.lab | CHANGED | rc=0 >>
total 36K
-rw-r--r--. 1 root root 30K Jan 23 02:26 Cen
-rw-rw-r--. 1 u1 u1 18 Jan 23 02:21 magi.txt
要將文件從一個(gè)位置復(fù)制到遠(yuǎn)程計(jì)算機(jī)上的另一個(gè)位置,使用以下命令:
$ ansible web -m command -a "cp /home/u2/magi /home/u2/magi/2g" --become
移動(dòng)文件,使用以下命令:
$ ansible web -m command -a "mv /home/u2/magi /home/u2/magi/2g" --become
在 u1
用戶目錄下創(chuàng)建一個(gè)名為an
的新文件,運(yùn)行以下命令:
$ ansible web -m file -a "dest=/home/u1 owner=u1 group=u1 state=touch" --become
在 u1
用戶目錄下創(chuàng)建一個(gè)名為magi
的新目錄,運(yùn)行以下命令:
$ ansible web -m file -a "dest=/home/u1/magi mode=755 owner=u2 group=u2 state=directory" --become
將 u1
用戶目錄下的an
* 文件權(quán)限更改為777
,運(yùn)行以下命令:
$ ansible web -m file -a "dest=/home/u1 mode=777" --become
刪除 u1
用戶目錄下的an
文件,運(yùn)行以下命令:
$ ansible web -m file -a "dest=/home/u2/magi state=absent" --become
使用以下命令刪除目錄,它將遞歸刪除指定目錄:
$ ansible web -m file -a "dest=/home/u2/magi/2g state=absent" --become
3)用戶管理
你可以使用 Ansible 輕松執(zhí)行用戶管理活動(dòng)。例如創(chuàng)建、刪除用戶以及向一個(gè)組添加用戶。
$ ansible all -m user -a "name=foo password=[crypted password here]"
運(yùn)行以下命令刪除用戶:
$ ansible all -m user -a "name=foo state=absent"
4)管理包
使用合適的 Ansible 包管理器模塊可以輕松地管理安裝包。例如,我們將使用 yum
模塊來管理 CentOS 系統(tǒng)上的軟件包。
安裝最新的 Apache(httpd):
$ ansible web -m yum -a "name=httpd state=latest"
卸載 Apache(httpd) 包:
$ ansible web -m yum -a "name=httpd state=absent"
5)管理服務(wù)
使用以下 Ansible 模塊命令可以在 Linux 上管理任何服務(wù)。
停止 httpd 服務(wù):
$ ansible web -m service -a "name=httpd state=stopped"
啟動(dòng) httpd 服務(wù):
$ ansible web -m service -a "name=httpd state=started"
重啟 httpd 服務(wù):
$ ansible web -m service -a "name=httpd state=restarted"
via:
作者:Magesh Maruthamuthu選題:lujun9972譯者:MjSeven校對:wxy
本文由 LCTT原創(chuàng)編譯,Linux中國榮譽(yù)推出
1.《【l39e5000-3d怎么點(diǎn)對點(diǎn)】Ansible點(diǎn)對點(diǎn)命令快速入門指南示例》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《【l39e5000-3d怎么點(diǎn)對點(diǎn)】Ansible點(diǎn)對點(diǎn)命令快速入門指南示例》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請保留本站內(nèi)容來源地址,http://f99ss.com/why/3060560.html