如何捕获未找到密钥的ansible credstash查找插件的异常?

时间:2017-10-04 15:58:32

标签: ansible credstash

我有以下代码

 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

我有什么选择?

1 个答案:

答案 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') }}"