ansible Ad-Hoc临时命令

临时命令是使用Ansible的最简单方法之一。当你要在一个服务器或一堆服务器上发出某些命令时,可以使用这些命令。临时命令不会存储供将来使用,但是它代表了与所需服务器进行交互的快速方法。
【ansible Ad-Hoc临时命令】Ansible ad-hoc命令使用/ usr / bin / ansible命令行工具来自动化一个或多个受管节点上的单个任务。即席命令既快速又简单,但不可重复使用。临时命令演示了Ansible的简单性和强大功能。
句法

ansible < hosts> [-m < module_name>] -a < "arguments"> -u < username> [--become]

说明
主机:它可以是清单文件中的条目。要指定清单中的所有主机,请使用all或“ *”。
module_name:这是一个可选参数。 Ansible中提供了数百个模块,例如shell,yum,apt,文件和复制。默认情况下,它是命令。
参数:我们应该传递模块所需的值。可以根据所使用的模块进行更改。
用户名:它指定Ansible可以在其中执行命令的用户帐户。
成为:这是我们要运行需要sudo特权的操作时指定的可选参数。默认情况下,它变为false。
1.并行和shell命令
你可以同时在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

2.文件传输
你可以使用临时命令执行SCP(安全复制协议),这意味着在多台计算机或服务器上并行处理大量文件。
在许多机器或服务器上传输文件
$ ansible abc -m copy -a "src = http://www.srcmini.com/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"

3.管理软件包
临时命令可用于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"

4.老化用户和组
你可以使用临时命令在托管节点上管理,创建和删除用户帐户。
$ ansible all -m user -a "name=foo password=< crypted password here>"$ ansible all -m user -a "name=foo state=absent"

5.管理服务
确保在所有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"

6.收集事实
事实代表发现的有关系统的变量。你可以使用事实来实现任务的有条件执行,也可以用来获取有关系统的临时信息。要查看所有事实:
$ ansible all -m setup

    推荐阅读