【发布时间】:2020-03-15 13:12:41
【问题描述】:
你知道我是否能够将变量传递到查找查询中吗?
password: "{{ lookup('hashi_vault', 'secret=secret/data/my_secret:data')['{{ myvar }}']}}"
myvar 设置为 mypass
vault kv put secret/my_secret mypass=abcd123
我收到以下错误。
{"msg": "该任务包含一个带有未定义变量的选项。错误是:'dict object' 没有属性 '{{myvar}}'\n\n错误似乎在 '... /ansible/roles/joetests/tasks/main.yml':第 23 行,第 7 列,但可能\n位于文件中的其他位置,具体取决于确切的语法问题。\n\n违规行似乎是:\n\n\ n - 调试:\n ^ 此处\n"}
我尝试了不同的引用,但似乎不起作用
password: "{{ lookup('hashi_vault', 'secret=secret/data/my_secret:data')['"{{ myvar }}"']}}"
password: "{{ lookup('hashi_vault', 'secret=secret/data/my_secret:data')["'{{ myvar }}'"]}}"
如果我使用以下它会成功返回密码。
password: "{{ lookup('hashi_vault', 'secret=secret/data/my_secret:data')['mypass']}}"
我目前正在测试一个非常简单的剧本
---
- debug:
msg:
- "{{ item }} => {{ password }}"
with_items:
- "{{ myvar }}"
在哪里
myvar:
- user1
- user2
- user3
【问题讨论】: