You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWX/Ansible Tower执行playbook时如何传递运行时交互输入

核心结论

AWX/Ansible Tower 为非交互式异步执行架构,作业运行时不绑定可实时交互的TTY终端,pause模块无法在平台中提供运行时输入入口属于架构原生限制,不存在直接适配的配置方法。CLI环境下pause可正常交互,是因为本地执行时直接绑定了当前Shell的交互式TTY资源,这套逻辑在AWX的调度执行模型下不成立。

官方推荐替代方案

方案1:作业模板Survey(启动前参数采集)

这是平台原生的标准交互实现,适配绝大多数需要用户传参的场景:

  • 在作业模板配置页开启「Survey」功能,按需定义需要用户输入的字段,支持文本、单选/多选、密码、数值等多种类型,可配置必填规则、默认值、输入校验逻辑
  • 用户启动作业时,平台会先弹出问卷页面,所有字段填写完成后才会启动作业,输入内容会自动作为额外变量注入playbook上下文,可直接引用

原有pause采集输入的写法:

- name: 采集部署环境参数
  pause:
    prompt: "请输入部署环境标识(prod/staging)"
  register: raw_env_input

替换为直接引用Survey传入的变量即可:

- name: 读取传入的部署环境参数
  debug:
    msg: "当前执行部署的环境为{{ deploy_env }}"

其中deploy_env为Survey中提前定义的变量名。

方案2:工作流审批节点(分阶段人工交互)

如果需要playbook执行到特定阶段后,再触发人工确认/输入,不要使用pause模块,改用工作流(Workflow)实现:

  • 将完整执行逻辑拆分为多个作业模板节点,按执行顺序排布在工作流中
  • 在需要人工介入的位置插入「审批节点」,配置可审批的用户/角色权限
  • 执行到审批节点时,平台会自动向对应权限的用户发送通知,审批人可在弹窗中填写审批意见、选择同意/驳回
  • 审批通过后,后续节点可直接引用审批时提交的输入内容继续执行,全流程操作留痕可审计。

方案3:自定义异步输入(复杂交互场景)

如果确实需要执行到特定步骤再触发非固定选项的输入,可通过自定义逻辑实现:

  • playbook执行到交互节点时,调用平台通知接口向指定用户发送待办提醒
  • playbook进入轮询等待状态,按固定间隔检测预定义存储位置(自定义凭证、外部KV存储、执行节点本地临时文件)是否存在输入值
  • 用户通过自定义的内部表单提交输入后,将值写入上述存储位置,playbook检测到值后自动读取并继续后续流程
    该方案需要少量二次开发,仅推荐Survey、审批节点无法满足需求时使用。
避坑说明
  • 不要尝试修改AWX执行容器配置强行给运行进程挂载TTY适配pause模块,会破坏平台作业调度、日志采集逻辑,版本升级后配置会直接失效,同时存在安全隐患
  • 不要尝试登录执行节点手动给运行中的Ansible进程传递输入,AWX执行节点是动态调度的,进程运行位置不固定,操作无审计记录,也无法复现。

内容的提问来源于stack exchange,提问作者Aditya Siddarth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 10:03:15