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

如何判断当前Ansible是通过AWX还是命令行执行的?

判断Ansible Playbook运行途径(AWX vs 命令行)

以下是几种可靠的判断方法:

1. 检查AWX专属环境变量

AWX在运行playbook时会自动注入一系列环境变量,命令行运行时不会存在这些变量。常用的标识变量包括:

  • AWX_JOB_ID:AWX任务的唯一ID
  • AWX_JOB_NAME:AWX任务名称
  • AWX_PROJECT_DIR:AWX中项目的存储目录
  • AWX_INVENTORY_ID:AWX使用的库存ID

示例Playbook任务

- name: 检测运行环境
  debug:
    msg: "通过AWX平台运行,任务ID: {{ lookup('env', 'AWX_JOB_ID') }}"
  when: lookup('env', 'AWX_JOB_ID') | length > 0

- name: 检测运行环境
  debug:
    msg: "通过命令行运行"
  when: lookup('env', 'AWX_JOB_ID') | length == 0

也可以提前设置一个标识变量,供后续任务使用:

- name: 设置运行环境标识
  set_fact:
    is_awx_run: "{{ lookup('env', 'AWX_JOB_ID') is defined and lookup('env', 'AWX_JOB_ID') | length > 0 }}"

2. 检查当前工作目录

AWX运行playbook时,默认会在/var/lib/awx/projects/下的对应项目目录中执行,而命令行运行通常是你本地自定义的工作目录。可以通过ansible_env.PWD变量查看当前路径:

- name: 检查工作目录判断运行环境
  debug:
    msg: "通过AWX平台运行"
  when: ansible_env.PWD starts with '/var/lib/awx/projects/'

- name: 检查工作目录判断运行环境
  debug:
    msg: "通过命令行运行"
  when: not ansible_env.PWD starts with '/var/lib/awx/projects/'

3. 查看日志输出特征

  • AWX的任务日志开头会包含任务ID、模板名称、执行用户等AWX专属元数据
  • 命令行运行的Ansible日志仅包含标准的playbook执行输出,无AWX相关标识

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:52:45