我试图用ansible set_fact Jinja2创建一个列表, 但是它创建了两个不同的列表
变量:lb_侦听器设置为[80443]
代码:
- name: "Build listeners map"
set_fact:
lb_lstnr_map: >-
{%- set lb_lstnr_map = [] -%}
{%- for port in lb_listeners -%}
{%- if port|int == 443 and cert_arn.startswith('arn:') -%}
{{ lb_lstnr_map + [{
'Protocol': 'HTTPS',
'Port': 443,
'DefaultActions': [ { 'Type': 'forward', 'TargetGroupName': tg_name } ],
'SslPolicy': ssl_policy,
'Certificates': [ { 'CertificateArn': cert_arn } ]
}]
}}
{%- elif port|int != 443 -%}
{{ lb_lstnr_map + [{
'Protocol': 'TCP' if lb_type == 'network' else 'HTTP',
'Port': port,
'DefaultActions': [ { 'Type': 'forward', 'TargetGroupName': tg_name } ]
}]
}}
{%- endif -%}
{%- endfor -%}
实际产量
[{'Protocol': 'HTTP', 'Port': 8080, 'DefaultActions': [{'Type': 'forward', 'TargetGroupName': 'dev-sample-app-tga'}]}]
[{'Protocol': 'HTTPS', 'Port': 443, 'DefaultActions': [{'Type': 'forward', 'TargetGroupName': 'dev-sample-app-tga'}], 'SslPolicy': 'ELBSecurityPolicy-2016-08', 'Certificates': [{'CertificateArn': 'arn:aws:x:x'}]}]
怎样才能在一张单子里找到呢
您在一个事实赋值的中间嵌入字符串模板^ {CD1>};您想要的是在jinja2中完成所有python的工作,并且只在最后发出结构:
相关问题 更多 >
编程相关推荐