在之前写了一篇关于安装和配置Ansible的文章。那个教程只包含几个使用方法的例子。如果你是Ansible新手,建议阅读前面的文章。一旦熟悉了,就可以继续阅读这篇文章。
默认情况下,Ansible仅使用5个并行进程。要在多台主机上执行操作,必须通过添加-f [进程数]选项手动设置进程数。
什么是点对点ad-hoc命令?
点对点命令用于在一个或多个管理大象节点上自动执行任务。很简单,但不能重复使用。使用/usr/bin/ansible二进制文件执行所有操作。
点到点命令最适合执行一次的任务。例如,要确定指定的用户是否可用,可以使用命令行,而无需编写脚本。
为什么你要了解点对点命令?
点对点命令证明了Ansible的简单性和强大功能。从2.9版开始支持3389个模块,因此需要了解和学习定期使用的Ansible模块列表。
第一次使用Ansible时,可以使用点到点命令轻松练习这些模块和参数。
你在这里学到的概念将直接移植到剧本中。
点对点命令的一般语法:
Ansible [模式] -m [模块] -a '[模块选项]'
点对点命令由以下四部分组成:
区段描述输入ansible指令模式清单或执行指定的群组模组指定的模组名称模组选项模组参数
如何使用 Ansible 清单文件
Ansible的主清单文件/etc/ansible/hosts可直接调用。否则,可以使用-i选项指定Ansible清单文件的路径。
什么是模式以及如何使用它?
Ansible模式可以表示主机、IP地址、清单组、主机组或清单中的所有主机。可以执行命令和脚本。图案非常灵活,可以根据需要使用。
例如,可以排除主机、使用通配符或正则表达式等。
下表说明了常见的模式和用法。但是,如果它不能满足你的要求,可以在ansible-playbook中使用带有-e参数的图案中的变量。
说明模式大象对所有主机all(或*)清单中的所有服务器运行Ansible的主机host1仅对指定主机运行Ansible多主机host1:host2(或host1),对host2以上的多台主机运行Ansible的web服务器组web服务器组中的Ansible
什么是
Ansible 模块,它干了什么?
模块,也称为“任务插件”或“库插件”,它是一组代码单元,可以直接或通过剧本在远程主机上执行指定任务。
Ansible 在远程目标节点上执行指定模块并收集其返回值。
每个模块都支持多个参数,可以满足用户的需求。除少数模块外,几乎所有模块都采用 key=value
参数。你可以一次添加带有空格的多个参数,而command
或shell
模块会直接运行你输入的字符串。
我们将添加一个包含最常用的“模块选项”参数的表。
列出所有可用的模块,运行以下命令:
$ ansible-doc -l
运行以下命令来阅读指定模块的文档:
$ ansible-doc [模块]
1)如何在 Linux 上使用 Ansible 列出目录的内容
可以使用 Ansible command
模块来完成这项操作,如下所示。我们列出了node1.2g.lab
和nod2.2g.lab
* 远程服务器上daygeek
用户主目录的内容。
$ 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
模块将文件从本地系统复制到远程系统。使用 Ansiblecommand
模块将文件移动或复制到远程计算机。
$ 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 }
我们可以运行以下命令进行验证:
$ 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
要将文件从一个位置复制到远程计算机上的另一个位置,使用以下命令:
$ ansible web -m command -a "cp /home/u2/magi /home/u2/magi/2g" --become
移动文件,使用以下命令:
$ ansible web -m command -a "mv /home/u2/magi /home/u2/magi/2g" --become
在 u1
用户目录下创建一个名为an
的新文件,运行以下命令:
$ ansible web -m file -a "dest=/home/u1 owner=u1 group=u1 state=touch" --become
在 u1
用户目录下创建一个名为magi
的新目录,运行以下命令:
$ ansible web -m file -a "dest=/home/u1/magi mode=755 owner=u2 group=u2 state=directory" --become
将 u1
用户目录下的an
* 文件权限更改为777
,运行以下命令:
$ ansible web -m file -a "dest=/home/u1 mode=777" --become
删除 u1
用户目录下的an
文件,运行以下命令:
$ 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 轻松执行用户管理活动。例如创建、删除用户以及向一个组添加用户。
$ ansible all -m user -a "name=foo password=[crypted password here]"
运行以下命令删除用户:
$ ansible all -m user -a "name=foo state=absent"
4)管理包
使用合适的 Ansible 包管理器模块可以轻松地管理安装包。例如,我们将使用 yum
模块来管理 CentOS 系统上的软件包。
安装最新的 Apache(httpd):
$ ansible web -m yum -a "name=httpd state=latest"
卸载 Apache(httpd) 包:
$ ansible web -m yum -a "name=httpd state=absent"
5)管理服务
使用以下 Ansible 模块命令可以在 Linux 上管理任何服务。
停止 httpd 服务:
$ ansible web -m service -a "name=httpd state=stopped"
启动 httpd 服务:
$ ansible web -m service -a "name=httpd state=started"
重启 httpd 服务:
$ ansible web -m service -a "name=httpd state=restarted"
via:
作者:Magesh Maruthamuthu选题:lujun9972译者:MjSeven校对:wxy
本文由 LCTT原创编译,Linux中国荣誉推出
1.《【l39e5000-3d怎么点对点】Ansible点对点命令快速入门指南示例》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《【l39e5000-3d怎么点对点】Ansible点对点命令快速入门指南示例》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/why/3060560.html