📅  最后修改于: 2020-12-26 12:18:27             🧑  作者: Mango
临时命令是使用Ansible的最简单方法之一。当您要在一个服务器或一堆服务器上发出某些命令时,可以使用这些命令。即席命令不会存储以备将来使用,但是它代表了一种与所需服务器进行交互的快速方法。
Ansible ad-hoc命令使用/ usr / bin / ansible命令行工具来自动化一个或多个受管节点上的单个任务。即席命令既快速又简单,但不可重复使用。临时命令演示了Ansible的简单性和强大功能。
ansible [-m ] -a <"arguments"> -u [--become]
主机:它可以是清单文件中的条目。要指定清单中的所有主机,请使用all或“ *”。
module_name:这是一个可选参数。 Ansible中提供了数百个模块,例如shell,yum,apt,file和copy 。默认情况下,它是命令。
参数:我们应该传递模块所需的值。可以根据所使用的模块进行更改。
用户名:它指定Ansible可以在其中执行命令的用户帐户。
成为:这是我们要运行需要sudo特权的操作时指定的可选参数。默认情况下,它变为false。
您可以同时在12个并行分支中重新启动公司服务器。为此,您需要设置SSHagent进行连接。
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
要在12个并行分支中为组“ abc”中的所有公司服务器运行重新引导,请执行以下操作:
$ ansible abc -a "/sbin/reboot" -f 12
默认情况下,Ansible将从当前用户帐户运行上述临时命令。如果要更改,请按如下所示在ad-hoc命令中传递用户名:
$ ansible abc -a "/sbin/reboot" -f 12 -u username
您可以使用临时命令执行SCP(安全复制协议),这意味着在多台计算机或服务器上并行并行处理大量文件。
在许多机器或服务器上传输文件
$ ansible abc -m copy -a "src = /etc/yum.conf dest = /tmp/yum.conf"
建立新目录
$ ansible abc -m file -a "dest = /path/user1/new mode = 888 owner = user1 group = user1 state = directory"
删除所有目录和文件
$ ansible abc -m file -a "dest = /path/user1/new state = absent"
临时命令可用于apt和yum模块。以下是使用yum的以下临时命令。
下面的命令检查yum软件包是否已安装,但不进行更新。
$ ansible abc -m yum -a "name = demo-tomcat-1 state = present"
下面的命令检查软件包是否已安装。
$ ansible abc -m yum -a "name = demo-tomcat-1 state = absent"
然后使用以下命令检查已安装的软件包的最新版本。
$ ansible abc -m yum -a "name = demo-tomcat-1 state = latest"
您可以使用临时命令在托管节点上管理,创建和删除用户帐户。
$ ansible all -m user -a "name=foo password="
$ ansible all -m user -a "name=foo state=absent"
确保在所有Web服务器上启动了服务。
$ ansible webservers -m service -a "name=httpd state=started"
或者,在所有Web服务器上重新启动服务:
$ ansible webservers -m service -a "name=httpd state=restarted"
确保服务已停止:
$ ansible webservers -m service -a "name=httpd state=stopped"
事实代表发现的有关系统的变量。您可以使用事实来实现任务的有条件执行,也可以用来获取有关系统的临时信息。要查看所有事实:
$ ansible all -m setup