Спасибо @ Владимир Ботка за трубу. Вот решение, которое я реализовал на основе переменных pipe
и replace
:
Пакет описывается во внешнем файле как:
---
- packages:
- name: Some Package Description,
package: linux-headers-${pipe}
pipe: uname -r
Playbook, мы получаем результатpipe
и заменить на package
:
- name: test pipe
debug:
msg: "key: {{ item.package | replace('${pipe}', lookup('pipe', item.pipe)) }}"
when: item.pipe is defined
with_items: "{{ packages }}"
Выход:
TASK [pipe] ********************************************************************
skipping: [default] => (item={u'packageList': [u'package1,', u'package2,', u'package3'], u'name': u'Some description 1,'})
ok: [default] => (item={u'pipe': u'uname -r', u'name': u'Some description 1,', u'package': u'linux-headers-${pipe}'}) => {
"msg": "key: linux-headers-4.15.0-65-generic"
}