您好,登錄后才能下訂單哦!
這篇文章主要介紹Ansible中點(diǎn)對(duì)點(diǎn)命令是什么意思,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
點(diǎn)對(duì)點(diǎn)命令用于在一個(gè)或多個(gè)受控節(jié)點(diǎn)上自動(dòng)執(zhí)行任務(wù)。它非常簡(jiǎn)單,但是不可重用。它使用 /usr/bin/ansible
二進(jìn)制文件執(zhí)行所有操作。
點(diǎn)對(duì)點(diǎn)命令最適合運(yùn)行一次的任務(wù)。例如,如果要檢查指定用戶是否可用,你可以使用一行命令而無(wú)需編寫劇本。
點(diǎn)對(duì)點(diǎn)命令證明了 Ansible 的簡(jiǎn)單性和強(qiáng)大功能。從 2.9 版本開(kāi)始,它支持 3389 個(gè)模塊,因此你需要了解和學(xué)習(xí)要定期使用的 Ansible 模塊列表。
如果你是一個(gè) Ansible 新手,可以借助點(diǎn)對(duì)點(diǎn)命令輕松地練習(xí)這些模塊及參數(shù)。
你在這里學(xué)習(xí)到的概念將直接移植到劇本中。
點(diǎn)對(duì)點(diǎn)命令的一般語(yǔ)法:
ansible [模式] -m [模塊] -a "[模塊選項(xiàng)]"
點(diǎn)對(duì)點(diǎn)命令包含四個(gè)部分,詳細(xì)信息如下:
部分 | 描述 |
---|---|
ansible | 命令 |
模式 | 輸入清單或指定組 |
模塊 | 運(yùn)行指定的模塊名稱 |
模塊選項(xiàng) | 指定模塊參數(shù) |
如果使用 Ansible 的默認(rèn)清單文件 /etc/ansible/hosts
,你可以直接調(diào)用它。否則你可以使用 -i
選項(xiàng)指定 Ansible 清單文件的路徑。
Ansible 模式可以代指某個(gè)主機(jī)、IP 地址、清單組、一組主機(jī)或者清單中的所有主機(jī)。它允許你對(duì)它們運(yùn)行命令和劇本。模式非常靈活,你可以根據(jù)需要使用它們。
例如,你可以排除主機(jī)、使用通配符或正則表達(dá)式等等。
下表描述了常見(jiàn)的模式以及用法。但是,如果它不能滿足你的需求,你可以在 ansible-playbook
中使用帶有 -e
參數(shù)的模式中的變量。
描述 | 模式 | 目標(biāo) |
---|---|---|
所有主機(jī) | all (或 * ) | 對(duì)清單中的所有服務(wù)器運(yùn)行 Ansible |
一臺(tái)主機(jī) | host1 | 只針對(duì)給定主機(jī)運(yùn)行 Ansible |
多臺(tái)主機(jī) | host1:host2 (或 host1,host2 ) | 對(duì)上述多臺(tái)主機(jī)運(yùn)行 Ansible |
一組 | webservers | 在 webservers 群組中運(yùn)行 Ansible |
多組 | webservers:dbservers | webservers 中的所有主機(jī)加上 dbservers 中的所有主機(jī) |
排除組 | webservers:!atlanta | webservers 中除 atlanta 以外的所有主機(jī) |
組之間的交集 | webservers:&staging | webservers 中也在 staging 的任何主機(jī) |
模塊,也稱為“任務(wù)插件”或“庫(kù)插件”,它是一組代碼單元,可以直接或通過(guò)劇本在遠(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)行以下命令來(lái)閱讀指定模塊的文檔:
$ ansible-doc [模塊]
可以使用 Ansible command
模塊來(lái)完成這項(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 12Kdrwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Desktopdrwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Documentsdrwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Downloadsdrwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Music-rwxr-xr-x. 1 daygeek daygeek 159 Mar 4 2019 passwd-up.shdrwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Picturesdrwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Publicdrwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Templates-rwxrwxr-x. 1 daygeek daygeek 138 Mar 10 2019 user-add.sh-rw-rw-r--. 1 daygeek daygeek 18 Mar 10 2019 user-list1.txtdrwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Videos node2.2g.lab | CHANGED | rc=0 >>total 0drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Desktopdrwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Documentsdrwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Downloadsdrwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Musicdrwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Picturesdrwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Publicdrwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Templatesdrwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Videos
Ansible 的 copy
模塊將文件從本地系統(tǒng)復(fù)制到遠(yuǎn)程系統(tǒng)。使用 Ansible command
模塊將文件移動(dòng)或復(fù)制到遠(yuǎn)程計(jì)算機(jī)。
$ ansible web -m copy -a "src=/home/daygeek/backup/CentOS7.2daygeek.com-20191025.tar dest=/home/u1" --become node1.2g.lab | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": true, "checksum": "ad8aadc0542028676b5fe34c94347829f0485a8c", "dest": "/home/u1/CentOS7.2daygeek.com-20191025.tar", "gid": 0, "group": "root", "md5sum": "ee8e778646e00456a4cedd5fd6458cf5", "mode": "0644", "owner": "root", "secontext": "unconfined_u:object_r:user_home_t:s0", "size": 30720, "src": "/home/daygeek/.ansible/tmp/ansible-tmp-1579726582.474042-118186643704900/source", "state": "file", "uid": 0} node2.2g.lab | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/libexec/platform-python" }, "changed": true, "checksum": "ad8aadc0542028676b5fe34c94347829f0485a8c", "dest": "/home/u1/CentOS7.2daygeek.com-20191025.tar", "gid": 0, "group": "root", "md5sum": "ee8e778646e00456a4cedd5fd6458cf5", "mode": "0644", "owner": "root", "secontext": "unconfined_u:object_r:user_home_t:s0", "size": 30720, "src": "/home/daygeek/.ansible/tmp/ansible-tmp-1579726582.4793239-237229399335623/source", "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 CentOS7.2daygeek.com-20191025.tar-rw-r--r--. 1 root root 25 Dec 9 03:31 user-add.sh node2.2g.lab | CHANGED | rc=0 >>total 36K-rw-r--r--. 1 root root 30K Jan 23 02:26 CentOS7.2daygeek.com-20191025.tar-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/ansible-1.txt /home/u2/magi/2g" --become
移動(dòng)文件,使用以下命令:
$ ansible web -m command -a "mv /home/u2/magi/ansible.txt /home/u2/magi/2g" --become
在 u1
用戶目錄下創(chuàng)建一個(gè)名為 ansible.txt
的新文件,運(yùn)行以下命令:
$ ansible web -m file -a "dest=/home/u1/ansible.txt 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
用戶目錄下的 ansible.txt
* 文件權(quán)限更改為 777
,運(yùn)行以下命令:
$ ansible web -m file -a "dest=/home/u1/ansible.txt mode=777" --become
刪除 u1
用戶目錄下的 ansible.txt
文件,運(yùn)行以下命令:
$ ansible web -m file -a "dest=/home/u2/magi/ansible-1.txt state=absent" --become
使用以下命令刪除目錄,它將遞歸刪除指定目錄:
$ ansible web -m file -a "dest=/home/u2/magi/2g state=absent" --become
你可以使用 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"
使用合適的 Ansible 包管理器模塊可以輕松地管理安裝包。例如,我們將使用 yum
模塊來(lái)管理 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"
使用以下 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"
以上是“Ansible中點(diǎn)對(duì)點(diǎn)命令是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。