自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ansible 點(diǎn)對點(diǎn)命令快速入門指南示例

運(yùn)維 系統(tǒng)運(yùn)維
之前,我們寫了一篇有關(guān) Ansible 安裝和配置 的文章。在那個(gè)教程中只包含了一些使用方法的示例。如果你是 Ansible 新手,建議你閱讀上篇文章。一旦你熟悉了,就可以繼續(xù)閱讀本文了。

[[384259]]

之前,我們寫了一篇有關(guān) Ansible 安裝和配置 的文章。在那個(gè)教程中只包含了一些使用方法的示例。如果你是 Ansible 新手,建議你閱讀上篇文章。一旦你熟悉了,就可以繼續(xù)閱讀本文了。

默認(rèn)情況下,Ansible 僅使用 5 個(gè)并行進(jìn)程。如果要在多個(gè)主機(jī)上執(zhí)行任務(wù),需要通過添加 -f [進(jìn)程數(shù)] 選項(xiàng)來手動設(shè)置進(jìn)程數(shù)。

什么是點(diǎn)對點(diǎn)ad-hoc命令?

點(diǎn)對點(diǎn)命令用于在一個(gè)或多個(gè)受控節(jié)點(diǎn)上自動執(zhí)行任務(wù)。它非常簡單,但是不可重用。它使用 /usr/bin/ansible 二進(jìn)制文件執(zhí)行所有操作。

點(diǎn)對點(diǎn)命令最適合運(yùn)行一次的任務(wù)。例如,如果要檢查指定用戶是否可用,你可以使用一行命令而無需編寫劇本。

為什么你要了解點(diǎn)對點(diǎn)命令?

點(diǎn)對點(diǎn)命令證明了 Ansible 的簡單性和強(qiáng)大功能。從 2.9 版本開始,它支持 3389 個(gè)模塊,因此你需要了解和學(xué)習(xí)要定期使用的 Ansible 模塊列表。

如果你是一個(gè) Ansible 新手,可以借助點(diǎn)對點(diǎn)命令輕松地練習(xí)這些模塊及參數(shù)。

你在這里學(xué)習(xí)到的概念將直接移植到劇本中。

點(diǎn)對點(diǎn)命令的一般語法:

  1. ansible [模式] -m [模塊] -a "[模塊選項(xiàng)]"

點(diǎn)對點(diǎn)命令包含四個(gè)部分,詳細(xì)信息如下:

部分 描述
ansible 命令
模式 輸入清單或指定組
模塊 運(yùn)行指定的模塊名稱
模塊選項(xiàng) 指定模塊參數(shù)

如何使用 Ansible 清單文件

如果使用 Ansible 的默認(rèn)清單文件 /etc/ansible/hosts,你可以直接調(diào)用它。否則你可以使用 -i 選項(xiàng)指定 Ansible 清單文件的路徑。

什么是模式以及如何使用它?

Ansible 模式可以代指某個(gè)主機(jī)、IP 地址、清單組、一組主機(jī)或者清單中的所有主機(jī)。它允許你對它們運(yùn)行命令和劇本。模式非常靈活,你可以根據(jù)需要使用它們。

例如,你可以排除主機(jī)、使用通配符或正則表達(dá)式等等。

下表描述了常見的模式以及用法。但是,如果它不能滿足你的需求,你可以在 ansible-playbook 中使用帶有 -e 參數(shù)的模式中的變量。

描述 模式 目標(biāo)
所有主機(jī) all(或 * 對清單中的所有服務(wù)器運(yùn)行 Ansible
一臺主機(jī) host1 只針對給定主機(jī)運(yùn)行 Ansible
多臺主機(jī) host1:host2(或 host1,host2 對上述多臺主機(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ī)

什么是 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 模塊會直接運(yùn)行你輸入的字符串。

我們將添加一個(gè)包含最常用的“模塊選項(xiàng)”參數(shù)的表。

列出所有可用的模塊,運(yùn)行以下命令:

  1. $ ansible-doc -l

運(yùn)行以下命令來閱讀指定模塊的文檔:

  1. $ ansible-doc [模塊]

1)如何在 Linux 上使用 Ansible 列出目錄的內(nèi)容

可以使用 Ansible command 模塊來完成這項(xiàng)操作,如下所示。我們列出了 node1.2g.lab 和 nod2.2g.lab* 遠(yuǎn)程服務(wù)器上 daygeek 用戶主目錄的內(nèi)容。

  1. $ ansible web -m command -a "ls -lh /home/daygeek"
  2.  
  3. node1.2g.lab | CHANGED | rc=0 >>
  4. total 12K
  5. drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Desktop
  6. drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Documents
  7. drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Downloads
  8. drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Music
  9. -rwxr-xr-x. 1 daygeek daygeek 159 Mar 4 2019 passwd-up.sh
  10. drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Pictures
  11. drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Public
  12. drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Templates
  13. -rwxrwxr-x. 1 daygeek daygeek 138 Mar 10 2019 user-add.sh
  14. -rw-rw-r--. 1 daygeek daygeek 18 Mar 10 2019 user-list1.txt
  15. drwxr-xr-x. 2 daygeek daygeek 6 Feb 15 2019 Videos
  16.  
  17. node2.2g.lab | CHANGED | rc=0 >>
  18. total 0
  19. drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Desktop
  20. drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Documents
  21. drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Downloads
  22. drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Music
  23. drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Pictures
  24. drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Public
  25. drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Templates
  26. drwxr-xr-x. 2 daygeek daygeek 6 Nov 9 09:55 Videos

2)如何在 Linux 使用 Ansible 管理文件

Ansible 的 copy 模塊將文件從本地系統(tǒng)復(fù)制到遠(yuǎn)程系統(tǒng)。使用 Ansible command 模塊將文件移動或復(fù)制到遠(yuǎn)程計(jì)算機(jī)。

  1. $ ansible web -m copy -a "src=/home/daygeek/backup/CentOS7.2daygeek.com-20191025.tar dest=/home/u1" --become
  2.  
  3. node1.2g.lab | CHANGED => {
  4. "ansible_facts": {
  5. "discovered_interpreter_python": "/usr/bin/python"
  6. },
  7. "changed": true,
  8. "checksum": "ad8aadc0542028676b5fe34c94347829f0485a8c",
  9. "dest": "/home/u1/CentOS7.2daygeek.com-20191025.tar",
  10. "gid": 0,
  11. "group": "root",
  12. "md5sum": "ee8e778646e00456a4cedd5fd6458cf5",
  13. "mode": "0644",
  14. "owner": "root",
  15. "secontext": "unconfined_u:object_r:user_home_t:s0",
  16. "size": 30720,
  17. "src": "/home/daygeek/.ansible/tmp/ansible-tmp-1579726582.474042-118186643704900/source",
  18. "state": "file",
  19. "uid": 0
  20. }
  21.  
  22. node2.2g.lab | CHANGED => {
  23. "ansible_facts": {
  24. "discovered_interpreter_python": "/usr/libexec/platform-python"
  25. },
  26. "changed": true,
  27. "checksum": "ad8aadc0542028676b5fe34c94347829f0485a8c",
  28. "dest": "/home/u1/CentOS7.2daygeek.com-20191025.tar",
  29. "gid": 0,
  30. "group": "root",
  31. "md5sum": "ee8e778646e00456a4cedd5fd6458cf5",
  32. "mode": "0644",
  33. "owner": "root",
  34. "secontext": "unconfined_u:object_r:user_home_t:s0",
  35. "size": 30720,
  36. "src": "/home/daygeek/.ansible/tmp/ansible-tmp-1579726582.4793239-237229399335623/source",
  37. "state": "file",
  38. "uid": 0
  39. }

我們可以運(yùn)行以下命令進(jìn)行驗(yàn)證:

  1. $ ansible web -m command -a "ls -lh /home/u1" --become
  2.  
  3. node1.2g.lab | CHANGED | rc=0 >>
  4. total 36K
  5. -rw-r--r--. 1 root root 30K Jan 22 14:56 CentOS7.2daygeek.com-20191025.tar
  6. -rw-r--r--. 1 root root 25 Dec 9 03:31 user-add.sh
  7.  
  8. node2.2g.lab | CHANGED | rc=0 >>
  9. total 36K
  10. -rw-r--r--. 1 root root 30K Jan 23 02:26 CentOS7.2daygeek.com-20191025.tar
  11. -rw-rw-r--. 1 u1 u1 18 Jan 23 02:21 magi.txt

要將文件從一個(gè)位置復(fù)制到遠(yuǎn)程計(jì)算機(jī)上的另一個(gè)位置,使用以下命令:

  1. $ ansible web -m command -a "cp /home/u2/magi/ansible-1.txt /home/u2/magi/2g" --become

移動文件,使用以下命令:

  1. $ ansible web -m command -a "mv /home/u2/magi/ansible.txt /home/u2/magi/2g" --become

在 u1 用戶目錄下創(chuàng)建一個(gè)名為 ansible.txt 的新文件,運(yùn)行以下命令:

  1. $ ansible web -m file -a "dest=/home/u1/ansible.txt owner=u1 group=u1 state=touch" --become

在 u1 用戶目錄下創(chuàng)建一個(gè)名為 magi 的新目錄,運(yùn)行以下命令:

  1. $ 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)行以下命令:

  1. $ ansible web -m file -a "dest=/home/u1/ansible.txt mode=777" --become

刪除 u1 用戶目錄下的 ansible.txt 文件,運(yùn)行以下命令:

  1. $ ansible web -m file -a "dest=/home/u2/magi/ansible-1.txt state=absent" --become

使用以下命令刪除目錄,它將遞歸刪除指定目錄:

  1. $ ansible web -m file -a "dest=/home/u2/magi/2g state=absent" --become

3)用戶管理

你可以使用 Ansible 輕松執(zhí)行用戶管理活動。例如創(chuàng)建、刪除用戶以及向一個(gè)組添加用戶。

  1. $ ansible all -m user -a "name=foo password=[crypted password here]"

運(yùn)行以下命令刪除用戶:

  1. $ ansible all -m user -a "name=foo state=absent"

4)管理包

使用合適的 Ansible 包管理器模塊可以輕松地管理安裝包。例如,我們將使用 yum 模塊來管理 CentOS 系統(tǒng)上的軟件包。

安裝最新的 Apache(httpd):

  1. $ ansible web -m yum -a "name=httpd state=latest"

卸載 Apache(httpd) 包:

  1. $ ansible web -m yum -a "name=httpd state=absent"

5)管理服務(wù)

使用以下 Ansible 模塊命令可以在 Linux 上管理任何服務(wù)。

停止 httpd 服務(wù):

  1. $ ansible web -m service -a "name=httpd state=stopped"

啟動 httpd 服務(wù):

  1. $ ansible web -m service -a "name=httpd state=started"

重啟 httpd 服務(wù):

  1. $ ansible web -m service -a "name=httpd state=restarted"

 

 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2021-03-02 06:32:03

Ansible系統(tǒng)運(yùn)維

2021-02-22 18:50:03

Ansible系統(tǒng)運(yùn)維

2011-03-08 16:50:35

2019-11-13 15:44:17

Kafka架構(gòu)數(shù)據(jù)

2020-11-25 19:05:50

云計(jì)算SaaS公有云

2025-02-28 08:42:53

SpringNetflixHystrix

2022-05-08 09:39:20

LinuxTee 命令

2024-08-27 09:09:49

Web系統(tǒng)JSP

2010-12-23 13:45:23

Office 2010批量激活

2020-11-13 05:49:09

物聯(lián)網(wǎng)城域網(wǎng)IOT

2015-08-17 14:13:52

Ansible輕量自動化部署工具

2022-02-16 09:42:33

Linuxapt命令軟件包

2023-12-19 09:36:35

PostgreSQL數(shù)據(jù)庫開源

2022-10-28 18:36:18

2020-05-11 09:54:33

JavaScript開發(fā)技術(shù)

2024-01-22 09:54:10

free命令

2011-03-08 09:22:37

2019-03-08 11:29:05

開源自動化工具Ansible

2010-08-03 15:19:08

FlexBuilder

2011-05-18 15:15:44

MySQL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號