azure - Ansible中模板内的模板?
问题描述
我是 Ansible 的新手,我很难弄清楚如何让表达式起作用。我正在尝试运行一个引用字典变量的命令任务,其中我需要引用的键也是动态的。相关代码(格式化多行):
tasks:
- name: set volume
command: az webapp config storage-account add --share-name shareName2
--access-key {{ kvsecrets['connectionstring-{{resources_name}}-key2'] }}
所以 kvsecrets 是由先前任务注册的字典,而 resources_name 是在剧本中进一步声明的变量。上面的语法不起作用,因为它输出 kvsecrets['connectionstring-{{resources_name}}-key2'] 而不进行内部转换。获取该字典键值的正确格式是什么?
谢谢!
解决方案
Ansible 是 python 模块的包装器,并使用 jinja2 进行模板化。这个问题可以通过字符串连接来解决:
下面是一个例子:
注意:请注意双引号和单引号
tasks:
- name: set volume
command: az webapp config storage-account add --share-name shareName2
--access-key {{ kvsecrets["'connectionstring-'+resources_name+'-key2'"]}} }}
推荐阅读
- javascript - 节点 process.timezone 未设置
- regex - 如何在包含 Vlookup、Filter 和 RegexMatch 的公式中使用 ArrayFormula
- javascript - 使用 Moment 验证 MMDDYYYY 格式
- c# - 将大文件发布到 REST Endpoint c# .net core
- mongodb - 如何在 mongo 脚本中使用 ansible playbook 中的变量?
- mysql - 重写 Excel 公式以在 mySQL 中运行
- html - 两个按钮之间的圆圈 - 仅使用 CSS 在一个上显示半圈,在另一个上显示半圈
- google-api - 如何使用客户端 ID 实时过滤来自谷歌分析的数据?
- python - Python:迭代一个月内的所有日子
- c# - 转换 IEnumerable
列出