我有以下代码
app_key: "{{ lookup('credstash', 'aws/project/'+app_name+'/'+app_env+'/app_key') | default('not-set') }}"
并且期望能够根据未找到密钥的查找失败来设置默认值,然后在我的剧本中生成并存储密钥。
但是,我发现插件引发了一个Exception,这会导致整个playbook运行失败。显然这不是我想要的(预先存储非生产分支的应用程序密钥)
(参见credstash代码: 你可以在这里找到credstash插件代码https://github.com/ansible/ansible/blob/ec701c4b82e570371af7c3999ffb587d870a5b37/lib/ansible/plugins/lookup/credstash.py)
我有什么选择?
答案 0 :(得分:2)
我有什么选择?
例如(我不知道你在app_key
定义了什么任务,所以我在下面的第二个任务中使用set_fact
):
- set_fact:
app_key_candidate: "{{ lookup('credstash', 'aws/project/'+app_name+'/'+app_env+'/app_key')"
ignore_errors: true
- set_fact:
app_key: "{{ app_key_candidate | default('not-set') }}"