在Ansible中,我试图从环境变量列表中获取第一个定义的值:BUILD_USER_EMAIL
,GERRIT_CHANGE_OWNER_EMAIL
,GERRIT_EVENT_ACCOUNT_EMAIL
,GERRIT_PATCHSET_UPLOADER_EMAIL
获得一个的代码看起来像
- email: "{{ lookup('env', 'BUILD_USER_EMAIL')}}"
当未定义变量时,这将解析为空字符串,这是正常的。
现在的问题是如何实现这作为回退的循环,所以我会尝试找到第一个定义的值。
答案 0 :(得分:2)
答案 1 :(得分:1)
我可以看到这是一个解决方案:
- email: "{{ lookup('env', 'BUILD_USER_EMAIL') |
default(lookup('env', 'GERRIT_CHANGE_OWNER_EMAIL'), True) |
default(lookup('env', 'GERRIT_EVENT_ACCOUNT_EMAIL'), True) |
default(lookup('env', 'GERRIT_PATCHSET_UPLOADER_EMAIL'), True) |
default('UNDEFINED', True) }}"
True
强制jinja2将空字符串计算为None。