在ansible剧本中省略参数的父项

在ansible剧本中省略参数的父项,ansible,yaml,jinja2,Ansible,Yaml,Jinja2,有人知道如何使用default(省略)删除父参数吗?类似的问题被问到了,但答案并没有真正回答我所面临的问题的复杂性,我被突然拒绝通过提出后续问题来强化答案,因此出现了新的问题 以下是ansible playbook任务的示例: - name: Testing omit module: parameters: Parameter1: value: "{{ TemplateVariable | default(omit) }}" 如果未定义TemplateV

有人知道如何使用default(省略)删除父参数吗?类似的问题被问到了,但答案并没有真正回答我所面临的问题的复杂性,我被突然拒绝通过提出后续问题来强化答案,因此出现了新的问题

以下是ansible playbook任务的示例:

- name: Testing omit
  module:
    parameters:
      Parameter1:
        value: "{{ TemplateVariable | default(omit) }}"
如果未定义TemplateVariable,则会导致以下json传递到另一个API:

parameters { "Parameter1": {} }
但是我需要它来通过这个:

parameters { }

对于定义的每个参数,模块都需要一个“值”参数。我无法修复该模块,任何人都可以建议Ansible/Jinja2/YAML解决方案吗?

这样的解决方案怎么样

-name:为param1定义模块参数
设定事实:
module_params:{{module_params}默认值({})}组合({'parameter1':{'value':TemplateParam}}})
定义时:TemplateParam
-名称:最终为下一个参数2执行此操作
设定事实:
module_params:“{{module_params}默认值({})}组合({'parameter2':{'value':OtherParam})}”
何时:定义了OtherParam
#注意:如果有很多参数,可以将上面的内容组织成一个循环。
#您必须调整数据结构和测试,但这非常简单。
-名称:具有计算参数的调用模块
模块:
参数:“{module_params}默认值({}}}”

哦,哇!如果这项工作是了不起的。我会测试和报告回来,谢谢!谢谢,这很有效!只有一个我无法解决的问题(编辑需要更改至少6个字符),您需要将
}
中最后一对括号更改为
}
中的
}
。谢谢你的反馈。如果这解决了问题,你应该接受答案,让其他人知道有一个有效的解决方案。恐怕我不值得接受答案。我点击投票,但他们说他们不在乎。“感谢您的反馈!声誉低于15的人所投的票会被记录下来,但不会改变公开显示的帖子分数。”滴答声现在已经出现了——对不起,我只是个新手。无论如何,谢谢你解决了我的问题!