2

我需要从此结果中获取 UserId:

      ok: [localhost] => {"ansible_facts": {"Usernamelis": "", "_raw_params": "\"{u'Users': [{u'UserName': u'reo', u'PasswordLastUsed': u'2016-01-08T14:00:34Z', u'CreateDate': u'2016-01-06T14:34:37Z', u'UserId': u'AIDABBBBBBBZGGASHKPKKYRI4', u'Path': u'/', u'Arn': u'arn:aws:iam::590456900000:user/reo'},{u'UserName': u'rake', u'PasswordLastUsed': u'2016-01-08T14:00:34Z', u'CreateDate': u'2016-01-06T14:34:37Z', u'UserId': u'GIDAJCAZGFFFFFFFFKYRI4', u'Path': u'/', u'Arn': u'arn:aws:iam::590456900000:user/rake'}]}}\""}

这是我的 Ansible 代码:

register: users_result

- set_fact: Usernamelis= "{{ users_result.stdout | from_json }}"

register: users_result0

- name: simple

debug:
msg: "{{ item }}"
with_items: "{{  users_result0.ansible_facts._raw_params | map(attribute='UserId') | list }}"

谢谢

4

1 回答 1

3

你有一个带有序列化 python 字典的字符串_raw_params
我不知道将其转换回 Ansible 中的对象的简单方法。
如果你找到了用 JSON 替换它的方法,你可以使用users_result0.ansible_facts._raw_params['Users'] | map(attribute='UserId') | list你的循环。

于 2016-08-12T10:56:11.233 回答