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

如何从Ansible任务输出中提取jobId值并存入变量?

从Ansible任务输出中提取jobId到变量

方法一:正则表达式提取

假设你的Ansible任务已将输出注册到script_output变量中,可通过以下任务提取jobId:

- name: 提取jobId值
  set_fact:
    extracted_job_id: "{{ script_output.msg | join('\n') | regex_search('\"jobId\"\\s*:\\s*\"([^\"]+)\"', '\\1') | first }}"

说明:

  • 先把msg列表拼接成完整字符串,用正则匹配"jobId"对应的取值,通过捕获组提取ID内容,最后取第一个匹配结果。

方法二:解析JSON片段提取

如果输出中的JSON格式规范,这种方法更稳定可靠:

# 第一步:从msg列表中筛选出完整的JSON块
- name: 提取JSON片段
  set_fact:
    job_json_content: "{{ script_output.msg | select('search', '\\{') | join('\n') }}"

# 第二步:解析JSON并获取jobId
- name: 解析JSON提取jobId
  set_fact:
    extracted_job_id: "{{ job_json_content | from_json | json_query('jobId') }}"

说明:

  • 先筛选出包含JSON起始符{的行,拼接成完整的JSON字符串;
  • 用from_json将字符串转为JSON对象,再通过json_query直接取出jobId的值(也可以简化为{{ job_json_content | from_json.jobId }})。

内容的提问来源于stack exchange,提问作者Akash-BLR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:50:32