【问题标题】:How to store Json output value in variable through Ansible如何通过 Ansible 将 Json 输出值存储在变量中
【发布时间】:2017-02-03 15:19:28
【问题描述】:

在 Ansible 中,我正在使用 REST API...我想要下面代码中的 clientid 值并希望在另一个任务中使用它..我正在使用 ansible uri 模块。

 debug: var=clients.json.clientProperties[3].client.clientEntity.clientId
      when: name==clients.json.clientProperties[{{ item }}].client.clientEntity.clientName
      with_sequence: start=0 end={{clients.json.clientProperties|length-1}}

我想将“16”存储在一个变量中,需要传递另一个 url

【问题讨论】:

标签: ansible co


【解决方案1】:
- debug: var=clients.json.clientProperties[3].client.clientEntity.clientId
  when: name == clients.json.clientProperties[ item ].client.clientEntity.clientName
  with_sequence: start=0 end="{{clients.json.clientProperties|length-1}}"
  register: result

您正在寻找的变量将在result.results[].item 上提供。您可以遍历result.results 或使用result.results[0]result.results[1] 等单独访问结果。

【讨论】:

  • 您能否详细说明一下。在我们的代码中,当名称与客户端名称匹配时,我想存储 clientId 的值。我不想要整个 json 数组文件。
  • 如果没有更多上下文,我不确定我能否给出更好的答案,因为您正在循环执行此操作。您不能将多个值保存到同一个 var 中,除非像我在这里所做的那样作为列表,这意味着您可以在使用之前覆盖您想要的值。
  • 复制:content={{clients.json.clientProperties[3].client.clientEntity.clientId}} dest="/tmp/result.txt" 当:name==clients.json.clientProperties [{{ item }}].client.clientEntity.clientName with_sequence: start=0 end={{clients.json.clientProperties|length-1}}
  • 在复制内容中我手动传递 [3] 但我想传递项目而不是 [3]...但它给出 {"failed": true, "msg": "template模板化字符串时出错:预期令牌':',得到'}'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 2019-11-02
  • 1970-01-01
  • 1970-01-01
  • 2022-10-19
  • 1970-01-01
相关资源
最近更新 更多