Ansible 3.6 json 令牌管理



我正在尝试编写一个 Ansible 剧本来检索管理员用户的访问令牌列表,然后迭代删除任何关联的令牌。

我的剧本如下:

- name: Details
uri:
url: "{{api_url}}{{api_token}}"
method: GET
headers:
content-type: "application/json"
authorization: "Bearer {{ token_fact }}"
validate_certs: no
ignore_errors: yes
status_code: 200
register: all_tokens

使用的变量都是在其他任务上较早设置的,本 playbook 将结果注册到"all_tokens"变量中。执行此播放时,我从打印"all_tokens"变量的调试任务中收到的结果如下:

all_tokens.json:
count: 2
next: null
previous: null
results:
- application: null
created: '2019-12-02T14:05:47.471743Z'
description: ''
expires: '3019-04-04T14:05:47.449065Z'
id: 314
modified: '2019-12-02T14:05:47.517372Z'
refresh_token: null
related:
activity_stream: /api/v2/tokens/314/activity_stream/
user: /api/v2/users/1/
scope: write
summary_fields:
user:
first_name: ''
id: 1
last_name: ''
username: admin
token: '************'
type: o_auth2_access_token
url: /api/v2/tokens/314/
user: 1
- application: null
created: '2019-12-02T14:08:02.408487Z'
description: ''
expires: '3019-04-04T14:08:02.402298Z'
id: 315
modified: '2019-12-02T14:08:02.432427Z'
refresh_token: null
related:
activity_stream: /api/v2/tokens/315/activity_stream/
user: /api/v2/users/1/
scope: write
summary_fields:
user:
first_name: ''
id: 1
last_name: ''
username: admin
token: '************'
type: o_auth2_access_token
url: /api/v2/tokens/315/
user: 1

我将如何在summary_field中的用户名上循环访问它? 例如,当用户是管理员时,会做某事?

问:">我将如何在summary_field中的用户名上迭代它?例如,当用户是管理员时,做某事?

答:例如,循环结果并测试项目

- debug:
msg: username is admin
loop: "{{ all_tokens.json.results }}"
when: item.summary_fields.user.username == 'admin'

"msg": "username is admin"
"msg": "username is admin"