如何从ansible中的stdout json获取特定属性值
how to get specific attribute value from stdout json in ansible
instance_tags.stdout 输出看起来像
休闲片段的预期输出是App Server-Development
- name: get instance tags
win_shell: aws ec2 --region us-east-1 describe-tags \ --filters "Name=resource-id,Values={{instance_id}}"
register: instance_tags
- name: echo instance tags
debug:
msg: "{{instance_tags.stdout | json_query('Tags[?Key==''AMSPatchGroup''].Value')}}"
但实际输出是
你至少需要 instance_tags.stdout | from_json | ...
因为 .stdout
是一个字符串,而不是一个实际的结构
可以通过一个简单的实验看到这种行为,显示 {{ '{"a":"b"}' | json_query("a") }}
returns ""
就像您的经验一样,但是 {{ '{"a":"b"}' | from_json | json_query("a") }}
会产生 "b"
期待
instance_tags.stdout 输出看起来像
休闲片段的预期输出是App Server-Development
- name: get instance tags
win_shell: aws ec2 --region us-east-1 describe-tags \ --filters "Name=resource-id,Values={{instance_id}}"
register: instance_tags
- name: echo instance tags
debug:
msg: "{{instance_tags.stdout | json_query('Tags[?Key==''AMSPatchGroup''].Value')}}"
但实际输出是
你至少需要 instance_tags.stdout | from_json | ...
因为 .stdout
是一个字符串,而不是一个实际的结构
可以通过一个简单的实验看到这种行为,显示 {{ '{"a":"b"}' | json_query("a") }}
returns ""
就像您的经验一样,但是 {{ '{"a":"b"}' | from_json | json_query("a") }}
会产生 "b"
期待