Ansible:获取列表的第 n 个元素

Ansible:获取列表的第 n 个元素

我有两个变量:

  • 资产:保存资产清单
  • asset_index:保存我感兴趣的索引(通过调试打印时为“0”)

如何获取指定位置的资产列表条目?

- debug:
    var: assets[0]

可以工作,但是有硬编码索引。

- debug:
    var: assets[ asset_index ]

给我The error was: 'list object' has no attribute '0'

- debug:
    var: assets[ {{ asset_index }} ]

给我template error while templating string: expected token ':', got '}'. String: {{ assets[ {{ asset_index }} ] }}'

答案1

现在我已经提出了这个问题,我可以更好地寻找解决方案。灵感来自在 Ansible Playbook 中将字符串转换为整数我试过

- debug:
    var: assets[ asset_index | int ]

...到目前为止,我一直在使用该过滤器设置变量,但它总是以字符串形式返回。在 Ansible 中,似乎您必须在使用值时执行转换,而不是在将其分配给变量时执行转换。

相关内容