Ansible教程:Ad Hoc 命令介绍(Ansible命令)

介绍

Ad Hoc 就是临时单行命令,不需要写 playbook,直接在命令行对批量主机执行任务,适合简单、一次性操作(查看状态、拷贝文件、启停服务、执行shell等)。

基础语法

ansible all/主机组/主机 -m 模块名 -a "模块参数" [其他选项]

解释:

  • 主机组/主机:inventory 里的组名、单个IP、多个IP逗号分隔,all代表所有主机
  • -m:指定模块,默认模块是 command(执行命令,不支持管道、重定向)
  • -a:模块的参数,要执行的内容
  • 常用额外参数:
    • -i:指定 inventory 文件(不使用默认 /etc/ansible/hosts)
    • -u:指定ssh登录用户
    • -k:交互式输入ssh密码(不推荐,生产用密钥)
    • -K:交互式输入sudo密码(提权)
    • -b:开启sudo提权(become,相当于sudo)
    • -B N:后台异步执行,超时N秒
    • -P N:异步任务轮询间隔
    • -f:并发线程数,默认5
    • -o:单行精简输出
    • --limit:限定只对部分主机执行

Ad Hoc 和 Playbook 的区别

Ad Hoc Playbook
单行命令,临时一次性任务 yaml剧本,可复用、复杂编排
无变量/循环/条件判断(很难写) 支持变量、when、loop、handler
适合:查看、简单拷贝、启停服务 适合:部署、配置管理、多步骤流程

原文出处:/show_1GW45QUhVUIo.html