Skip to content
章节导航

临时命令模式 ad-hoc

ad-hoc 临时命令模式下使用 ansible 命令行工具在一个或多个托管节点上自动执行单个任务。 临时命令既快速又简单,缺点是不可重复使用。

注意: 使用临时命令需要先掌握如何构建主机清单

为什么要使用临时命令模式

临时命令非常适合很少重复的任务。例如需要在假期关闭机房中的所有机器,可以在 Ansible 中执行一个快速的单行代码,而无需编写 playbook 剧本。

临时命令格式如下所示:

bash
absible [pattern] -m [module] -a "[module options]"
  • pattern 为主机组名
  • -m 为指定模块;[module] 为模块名(ansible 默认的模块名为 command 允许执行一些简单的命令)
  • -a 指定模块执行的动作;[module options] 批量执行的操作

临时命令模式用例

临时命令模式可用于重启服务器、复制文件、管理包和用户等等,允许在临时任务中使用任何 Ansible 模块。

它们通过在开始之前检查当前状态并且除非当前状态与指定的最终状态不同否则什么都不做来实现一种形式的幂等。

重启服务器

可以使用临时任务调用命令模块并重新启动指定主机清单下的所有 Web 服务器,默认一次同时操作 10 个主机。

执行此操作前,必须将指定主机清单下的所有服务器列在清单中名为 [web] 的组中,并必须为该组中的每台机器提供有效的 SSH 连接凭据和对应服务器用户的操作权限。

bash
# 重新启动 web 组中的所有服务器
ansible web -a "/sbin/reboot"

https://docs.ansible.com/ansible/latest/command_guide/intro_adhoc.html