我正在尝试调试正在过滤的变量,而我的调试语句包含第二个嵌套变量。我似乎找不到适当的格式来使调试工作。
例如:
vars:
- bw_type: as
- patches: [
PB.ps.21.sp1.551.pb2017091592773,
PB.as.21.sp1.551.pb2017091555706,
PB.as.21.sp1.551.pb2017091555707,
PB.xsp.21.sp1.551.pb2017091891314 ]
- debug: msg="Deployments - {{ patches|select('match','PB.{{ bw_type }}.')|list }}"
据我所知,我可以简单地删除调试消息并对var执行,这样可以正常工作。示例 -
- debug: var=patches|select('match','PB.{{ bw_type }}.')|list
但是我不能在with_items场景中做同样的事情,因为需要额外的胡子,所以我试图让它工作。
我在这里阅读了上一篇文章How can I use Ansible nested variable?
但我不确定如何将此应用于我已实施的过滤。鉴于这篇文章,我也试过以下内容但没有成功。
- debug: msg=" Deployments - {{ vars[patches|select('match','PB.'+ bw_type +'.')|list] }}"
我做错了什么?
答案 0 :(得分:1)
您可以使用Jinja2语法:
- debug:
msg: "Deployments - {{ patches | select('match', 'PB.' + bw_type + '.') | list }}"
您引用的帖子是关于在另一个变量的名称中使用变量。这是一个与你不同的问题。