Ansible 临时命令
 
 
Ansible 临时命令
 
 临时命令是使用 Ansible 的最简单方法之一。当您想在一个服务器或一组服务器上发出一些命令时,可以使用这些命令。临时命令不会存储以备将来使用,但它代表了一种与所需服务器交互的快速方式。 
 
 Ansible ad-hoc 命令使用/usr/bin/ansible 命令行工具在一个或多个受管节点上自动执行单个任务。 Ad-hoc 命令快速简便,但不可重复使用。 Ad-hoc 命令展示了 Ansible 的简单性和强大功能。
 
语法
 
 
  
  ansible <hosts> [-m <module_name>]-a <"arguments">-u <username> [--become]
 
   
  
说明
 
 主机: 它可以是清单文件中的一个条目。要指定清单中的所有主机,请使用 all 或"*"。
 
 module_name: 这是一个可选参数。 Ansible 中有数百个模块可用,例如 shell、yum、apt、file、 和 copy。默认情况下,它是命令。
 
 参数: 我们应该传递模块所需的值。它可以根据使用的模块进行更改。
 
 用户名: 指定 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 = /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.管理服务
 
 确保服务在所有网络服务器上启动。
 
 
  
  $ ansible webservers-m service-a "name=httpd state=started"
 
   
  
 或者,重新启动所有网络服务器上的服务: 
 
 
  
  $ ansible webservers-m service-a "name=httpd state=restarted"
 
   
  
 确保服务停止: 
 
 
  
  $ ansible webservers-m service-a "name=httpd state=stopped"
 
   
  
6.收集事实
 
 事实代表已发现的系统变量。您可以使用事实来实现任务的有条件执行,也可以用于获取有关您的系统的临时信息。要查看所有事实: