小编Ale*_*nov的帖子

如何在 Ansible/Jinja2 中获取变量的插值

我正在尝试以这种方式定义 Ansible 变量:

user:
  name: First Last
  nick: '{{ vars["user"]["name"] | regex_replace("\W", "_") }}'
  email: '{{ vars["user"]["nick"] }}@example.com'
Run Code Online (Sandbox Code Playgroud)

结果email是:"{{ vars[\"user\"][\"name\"] | regex_replace(\"\\W\", \"_\") }}@example.com

我也试过这样设置email{{ lookup("vars", "user.nick") }}@example.com
or {{ lookup("vars", "user")["nick"] }}@example.com
它说An unhandled exception occurred while running the lookup plugin 'vars'.

有没有办法将结果变量值作为:

user:
  name: First Last
  nick: First_Last
  email: First_Last@example.com
Run Code Online (Sandbox Code Playgroud)

?

ansible 2.9.10,python 版本 = 3.8.5

jinja2 ansible ansible-template ansible-filter

5
推荐指数
1
解决办法
246
查看次数