这是脚本
j2
tasks:
- name: template script
set_fact:
servers: |
{% for node_type in item.node_type %}
{% for individial_desk in node_type.desc %}
{% for count_of_desc in range(0, individial_desk.count) %}
- node_type: {{ node_type.name }}
server_kind: {{ individial_desk.kind }}
server_name: {{ node_type.node_names[count_of_desc] }}
server_number: {{ count_of_desc + 1 }}
{% endfor %}
{% endfor %}
{% endfor %}
loop: "{{ clusters }}"
我想创建一个 yaml 列表,其中包含我为每次迭代输出的 4 个值。但输出本身很奇怪,我觉得尝试将输出转换为正确的 yaml,然后我必须将其重新注入到剧本中,这是一个巨大的意外解决方法,需要花费我几个小时。
那么有没有办法在 j2 或 ansible 中创建 yaml 对象并为其附加属性?
或者是否可以以某种方式将这 4 个显示的变量(node_type、server_kind、server_name 和 server_number)用于 ansible playbook,以便它可以构建 yaml 列表,然后我可以使用它?