如何编写多行的Ansible Jinja2变量?

4

我有一条Ansible命令行未通过代码检查:

 tags: "{{ deployment_id | resource_tags('asg', base_resource_tags, deployment=deployment_id, deployment_env=deployment_env, deployment_name=deployment_name, purpose=deployment_purpose_tag, cpu_utilization=deployment_cpu_utilization_tag, disk_io_class=deployment_disk_io_tag, prom_exporters=deployment_prom_exporter_tags) | asg_tag_list }}"

我该如何使这段代码通过代码检查?


这个回答解决了你的问题吗?如何在YAML中将字符串分成多行? - stackprotector
1个回答

3
你需要使用YAML折叠标量,> 不用加引号。然后添加'block chomping' 'strip'文档指示符以删除尾随换行符。以下示例将正常工作,每个换行符都会转换为空格。添加引号会破坏它,例如:
tags: >-
    {{ deployment_id | resource_tags('asg', base_resource_tags, deployment=deployment_id,
    deployment_env=deployment_env, deployment_name=deployment_name, Purpose=deployment_purpose_tag,
    cpu_utilization=deployment_cpu_utilization_tag, disk_io_class=deployment_disk_io_tag,
    prom_exporters=deployment_prom_exporter_tags) | asg_tag_list }}

在折叠运算符后面包括“-”(例如::> -)将修剪尾随的换行符;您的版本等同于 tags:"{{...}}\n",这不是原始行中的内容。 - mdaniel
1
相关问题:如何在多行中将YAML字符串断开 - Andrew Richards
1
谢谢 @mdaniel,看起来我根据你的评论在几年前更新了答案。感谢你的建议! - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接