【发布时间】:2019-05-23 02:17:50
【问题描述】:
我正在尝试从 Ansible 的 cloudfront_facts 中提取特定别名的 CDN 域名,输出如下(汇总):
{
"cdn_facts": {
"ansible_facts": {
"cloudfront": {
"summary": {
"distributions": [
{
"Aliases": [
"media.example.com"
],
"DomainName": "a1b2c3d4e5f6g.cloudfront.net"
},
{
"Aliases": [
"example.com"
],
"DomainName": "g7f6e5d4c3b2a.cloudfront.net"
}
]
}
}
}
}
换句话说,对于别名example.com,我想设置一个值为g7f6e5d4c3b2a.cloudfront.net 的事实。
我尝试了以下方法来尝试打印该值,但它只是生成一个空列表。
- debug:
msg: "{{ cdn_facts.ansible_facts.cloudfront.summary.distributions | selectattr('Aliases[0]', 'equalto', 'example.com') | map(attribute='DomainName') | list }}"
我什至不知道如何调试它,因为cdn_facts.ansible_facts.cloudfront.summary.distributions 产生了一个dicts 数组,但selectattr 和map 没有产生任何东西。
【问题讨论】:
标签: python json ansible jinja2